今天学习Hibernate碰到了这个错误:
net.sf.hibernate.NonUniqueObjectException:
a different object with the same identifier value was already associated with the session: 0, of class: com.shoulders.survey.businessob.Order
正在解决中
这个错误的意思是不同对象拥有了同一个标识,但是我设置的Order对象的id是increment的,肯定不会是同一个标识。
Customer customer = new Customer("ylw","ylw66@hotmail.com",new HashSet());
Order order1=new Order("Order001",100,customer);
Order order2=new Order("Order002",200,customer);
customer.getOrders().add(order1);
customer.getOrders().add(order2);
this.saveCustomer(customer);
class Order{
private int id;
......
}
我将id类型改成了Long,问题解决了。
将id类型改回int,再次出现这个问题。
将id类型改成Integer,问题又解决了。
而customer对象的id设置成了int类型的,可以进行save的
是不是在对象关联时存取多个对象时,这种对象的OID只能使用包装类类型???现在还无法解释,以后再解释