2012-02-28 108 views
0

我有一个ID为主键的数据库表。
在对象中,我定义了使用@Id的colomn getter
当用户创建一个新行时,它会为其分配一个新的Id。
但它也为旧对象分配一个新的ID。在休眠状态下管理序列

因此, 当我重复使用

for(){ 
    session.save(myO); 
} 

列表我在DB的新元素,还为老ekements新行获得新行。 有没有什么帮助? 谢谢。

回答

1

The javadoc说:

坚持给定的瞬态的实例中,首先分配一个产生 标识符。

您应该在现有的分离实例上调用savesave是坚持一个新的实体。使用saveOrUpdatemerge

0

在数据库首先创建序列这样下面

给出CREATE SEQUENCE SEQ_MFILTERGROUP MINVALUE 1 MAXVALUE 99递增1,从1开始高速缓存20;

<类名= “example.FilterGroup” 表= “FILTERGROUP” >

< ID名称= “ID” >

发生器类= “序列” >

< PARAM NAME = “sequence”> SEQ_MFILTERGROUP </param >

< /发电机>

</ID >

< /类>