我自学spring框架的时在整合hibernate的时候出现了以下的问题:
Exception in thread "main" org.springframework.orm.hibernate3.HibernateSystemException: ids for this class must be manually assigned before calling save(): Employee.Employee; nested exception is org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Employee.Employee
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Employee.Employee
at org.hibernate.id.Assigned.generate(Assigned.java:53)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:635)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at Employee.EmployeeDaoImpl.add(EmployeeDaoImpl.java:15)
at Employee.EmployeeDaoImpl.main(EmployeeDaoImpl.java:20)
我找了很久不知道是哪里错了,请大家帮我看下,以下是我的配置文件和测试类
applicationContext.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<bean id="EmployeeDaoImpl" class="Employee.EmployeeDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>hibernate配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/myuser
</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">Mysql</property>
<mapping resource="Employee/Employee.hbm.xml" /> </session-factory></hibernate-configuration>以下是我的测试代码:package Employee;import java.util.Date;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class EmployeeDaoImpl extends HibernateDaoSupport{
public void add(){
Employee e = new Employee();
e.setName("123");
e.setPassword("123");
e.setBirthday(new Date());
this.getHibernateTemplate().save(e);
}
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
EmployeeDaoImpl em = (EmployeeDaoImpl) context.getBean("EmployeeDaoImpl");
em.add();
}}
Exception in thread "main" org.springframework.orm.hibernate3.HibernateSystemException: ids for this class must be manually assigned before calling save(): Employee.Employee; nested exception is org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Employee.Employee
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Employee.Employee
at org.hibernate.id.Assigned.generate(Assigned.java:53)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:635)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at Employee.EmployeeDaoImpl.add(EmployeeDaoImpl.java:15)
at Employee.EmployeeDaoImpl.main(EmployeeDaoImpl.java:20)
我找了很久不知道是哪里错了,请大家帮我看下,以下是我的配置文件和测试类
applicationContext.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<bean id="EmployeeDaoImpl" class="Employee.EmployeeDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
</beans>hibernate配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/myuser
</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">Mysql</property>
<mapping resource="Employee/Employee.hbm.xml" /> </session-factory></hibernate-configuration>以下是我的测试代码:package Employee;import java.util.Date;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class EmployeeDaoImpl extends HibernateDaoSupport{
public void add(){
Employee e = new Employee();
e.setName("123");
e.setPassword("123");
e.setBirthday(new Date());
this.getHibernateTemplate().save(e);
}
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
EmployeeDaoImpl em = (EmployeeDaoImpl) context.getBean("EmployeeDaoImpl");
em.add();
}}
解决方案 »
- SSH整合中通过spring3.1.1获取SessionFactory和Session的问题,求解答
- Xfire发布到Tomcat,启动报错
- Java如何输出高分辨率图片呢
- log4j日志问题(要求每天生成一日志。每天日志大于1mb就生成一个新的)
- 提一个菜鸟问题,关于JPA的
- 请问一个hql group by 查询的问题?
- 算法问题
- JSP中的树型问题.请大家指导一下!
- 网络项目合作开发团队成员招募中...
- servlet在tomcat5。0中是不是一定需要先注册?
- Eclipse运行.jsp时,javaw.exe进程占用了全部CPU,这个问题怎么解决?
- java实现web项目ftp方式上传文件到服务器
如:<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"/>
</id>
解决思路可以参考1楼。