0
我有一個數據庫與現有的數據,其中以前我一直使用數據庫上的AUTO_INCREMENT生成PK。NonUniqueObjectException遷移到hilo生成器策略
爲了提高性能和方便的批量插入,我試圖引進一個不同的密鑰生成策略:
public class BaseEntity implements Serializable {
@Id
@GeneratedValue(generator="generator")
@GenericGenerator(
name="generator", strategy="hilo")
private Integer id;
我發現單據上@GenericGenerator
語法很難得的,所以我不確定如果我已經正確實施它。據我瞭解,這個生成器爲實體PRIOR生成一個PK來執行INSERT,因此不需要插入後查詢來發現pk。
但是,它試圖執行INSERT時導致org.hibernate.NonUniqueObjectException
異常 - 大概是因爲hibernate試圖用於PK的值已被使用。
我在這裏的理解是否正確,如果是的話 - 如何配置Hibernate在啓動時讀取適當的表並選擇較低的PK界?
沒有其他代碼可用(也許這是錯的)。我從文檔中獲得「策略是Hibernate3生成器策略的簡稱」,「hilo」是一個有效的字符串。 我會看看你提供的方法 - thx。 – 2010-02-24 14:35:01