我有這樣的簡單情況:冬眠NonUniqueObjectException保存時更新
@Entity
public class Customer{
@ManyToMany(fetch=FetchType.EAGER)
@Cascade(CascadeType.SAVE_UPDATE)
private List<Product> products=new ArrayList<Product>();
}
@Entity
public class Produtc{
@ManyToOne
@Cascade(CascadeType.SAVE_UPDATE)
private Category category;
}
@Entity
public class Category{
private String name;
}
程序中插入新的客戶:
Customer customer=new Customer();
//customer.set data
Product p=dao.getProductBySomeUserInput...
if(p==null){
p=new Product();
//p.set data
}
customer.addProduct(p);
dao.save(customer); //this row throw NonUniqueObjectException on Category class
我怎樣才能解決這個問題?我認爲問題與CascadeType.SAVE_UPDATE有關,但我需要它... 謝謝大家。
UPDATE
我發現這個問題,這就是如何將它複製:
所以,如果P和P 1具有不同的類別有沒有probs,但如果p和p1具有相同的類別,我在類別上有NonUniqueObjectException becouse相同的類別在會話中,並且hibernate嘗試save_update它的。
我需要產品和類別實體中的CascadeType.SAVE_UPDATE,所以如何解決此問題? 謝謝。
可能的重複http://stackoverflow.com/questions/3543716/hibernate-and-nonuniqueobjectexception –
仍然無法解決。 – blow
是否有機會在客戶對象上設置ID?在hibernate的會話中是否存在具有相同ID的對象? – aishwarya