两次保存JPA实体

时间:2012-05-09 22:14:32

标签: java jpa clone

我正在尝试保存一个JPA实体两次,因为我想存储我的文章的父级和修订版。

当我创建新文章时,我实际上想要创建父项和与父项重复的修订。类似的东西:

Article parent = new Article();
Article revision = parent.clone();

em.persist(parent);
em.persist(revision);

但实际发生的事情是我在第二次坚持呼叫时遇到异常:

org.hibernate.StaleStateException: 
     Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

如何克隆文章以便我不会获得此类例外?

1 个答案:

答案 0 :(得分:0)

你的克隆方法是否也复制了@Id(也可能是@Version)?你真的应该给你的副本一个新的ID(或者你使用@GeneratedValue,未保存的值,所以产生一个新的值)。