Java 如何对标识符进行排序?
在我们的旧architektur中,我们使用了如下id:Java 如何对标识符进行排序?,java,hibernate,Java,Hibernate,在我们的旧architektur中,我们使用了如下id: /** * Model for each database-object */ public abstract class AbstractDbBase { @Getter @Setter @Id @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increme
/**
* Model for each database-object
*/
public abstract class AbstractDbBase {
@Getter
@Setter
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
@Column(nullable = false, unique = true, updatable = false)
private Long id;
}
但是我们在Hibernate之外更改值时遇到了一些问题。
因此,我们决定使用postgres
中的bigserial
我们更改了数据库,为每个表添加了一个sequence,并将其设置为主键。
我们有很多实体,它们都使用abstractdbase
。而在AbstractDbBase
中是id的定义
但是现在我们无法将Hibernate设置为正确使用序列。
我们尝试了以下策略(对于@GeneratedValue()
-annotation):
:在hibnerate上创建记录时引发异常(无法访问序列)GenerationType.IDENTITY
:引发验证异常(未找到序列)GenerationType.SEQUENCE
:引发验证异常(未找到序列)李>GenerationType.AUTO
GenerationType.IDENTITY
。现在我必须解决“不允许序列”的问题。
我已经解决了这个问题:
现在可以了