Hibernate 在Oracle、MS SQL和H2中使用TableGenerator休眠重复ID
我遇到了一个奇怪的行为,在一个长事务中,我得到了重复的ID 我正在使用JBoss7.2.0和Hibernate4.0.1.Final 我尝试了很多解决方案,但都没有成功:在persist()之后使用flush()并在insert周围使用嵌入式事务(new) 问候Hibernate 在Oracle、MS SQL和H2中使用TableGenerator休眠重复ID,hibernate,jpa,jboss,jta,Hibernate,Jpa,Jboss,Jta,我遇到了一个奇怪的行为,在一个长事务中,我得到了重复的ID 我正在使用JBoss7.2.0和Hibernate4.0.1.Final 我尝试了很多解决方案,但都没有成功:在persist()之后使用flush()并在insert周围使用嵌入式事务(new) 问候 @TableGenerator( table = "SEQUENCE_TABLE", name = "seq1", pkColumnName = "seq_name", valueColumnName = "seq_val", pkCo
@TableGenerator(
table = "SEQUENCE_TABLE", name = "seq1", pkColumnName = "seq_name",
valueColumnName = "seq_val", pkColumnValue = "seq1", allocationSize = 1,
initialValue = 1001)
@Id
@GeneratedValue(
strategy = GenerationType.TABLE, generator = "seq1")
public Long getId() {
return super.getId();
}
在基类中(其唯一目的是定义通用属性,如id、版本、行修改时间戳等):
您能否在基类中显示
getId()
方法的代码以及id
字段的声明?该id声明为“public Long id”,而“super.getId()”是“@Transient public Long getId(){return id;}”请将其添加到问题文本中,我在前面的注释中看不到您的代码。
public Long id;
@Transient
public Long getId() {
return id;
}