Hibernate的提示错误
Caused by: org.hibernate.HibernateException:
identifier of an instance of ... is alterde from 1 to 5
是下面这段代码报的错
这个错误是由于在一个事务中更新了主键,而主键是不能被更新的.
这段代码的错误在Object obj= new Object ();
这句代码放在for循环的外面,因此每次循环插入的时候,Hibernate认为只是一个对象,主键被更新,因此报错,如果放在for循环里面,就正常了,每次插入都是一个新的对象.
正确的代码如下
Caused by: org.hibernate.HibernateException:
identifier of an instance of ... is alterde from 1 to 5
是下面这段代码报的错
- public void insertRelation(Object obj,List list1)
- {
- Object obj= new Object ();
- for (int i = 0; i < list1.size(); i++)
- {
- service.insert(obj);
- }
- }
public void insertRelation(Object obj,List list1)
{
Object obj= new Object ();
for (int i = 0; i < list1.size(); i++)
{
service.insert(obj);
}
}
这个错误是由于在一个事务中更新了主键,而主键是不能被更新的.
这段代码的错误在Object obj= new Object ();
这句代码放在for循环的外面,因此每次循环插入的时候,Hibernate认为只是一个对象,主键被更新,因此报错,如果放在for循环里面,就正常了,每次插入都是一个新的对象.
正确的代码如下
- public void insertRelation(Object obj,List list1)
- {
- for (int i = 0; i < list1.size(); i++)
- {
- Object obj= new Object ();
- service.insert(obj);
- }
- }