2012-07-03 38 views
0

我有一个sql表与自动缩进Id(int) 当我插入一条新记录时,JSF bean的方法内: 我创建一个新的对象p = new Prop();然后设置除ID之外的所有部分,并将我提交给会话:session.save(p); 这适用于第一条记录; 当插入第二个或更多记录我也有NotUniqueObjectException也如果我已经创建了一个新的对象; 我该如何避免这种情况?HIBERNATE:NotUniqueObjectException在插入新的autoicnremnteID对象后

+0

你设置休眠的ID生成策略是什么? –

回答

0

您可以在休眠

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private int id; 
+0

它仍然不起作用;现在我可以看到它只与第一条记录一起工作,因为它创建了一个id = 0的对象,并将它写入到dbase中;每当我创建一个新的对象,它创建一个id = 0,所以我不能写新纪录... – antoiovi

+0

你可以尝试不同的策略,如身份,... –

+0

现在它是: @ Id @Column(name =“cod”,unique = true,nullable = false) @GeneratedValue(strategy = GenerationType.AUTO) private int cod; – antoiovi

0

设定的ID生成策略,当你正在使用Hibernate,在Hibernate中,我们有,如果你正在使用HBM映射定义自动增量型 然后做下面的一个。

为HBM映射:

<id name="id" type="java.lang.Long"> 
      <column name="ID" /> 
      <generator class="identity" /> 
     </id> 

用于注释:

@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
+0

: <发生器类= “增量”/ 和 @Id @Column(名=“codice”,unique = true,nullable = false)@GeneratedValue(strategy = GenerationType.AUTO)private int cod;它的工作原理;坦克给大家; (现在我必须更好地了解它是如何/为什么会起作用,但它是另一个问题......) – antoiovi

+0

将它发布在答案中,除了它自己 – subodh

相关问题