在我们的旧架构中,我们使用了这样的 id:
/**
* 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 之外的值时遇到了一些问题。所以我们决定使用bigserialfrom postgres。
我们更改了数据库并为每个表添加了一个序列并将其设置为主键。我们有很多实体,并且所有实体都使用AbstractDbBase. 而 inAbstractDbBase是 id 的定义。
但是现在我们无法设置 Hibernate 以正确使用该序列。我们尝试了以下策略(对于@GeneratedValue()-annotation):
GenerationType.IDENTITY:在休眠状态下创建记录时抛出异常(无法访问序列)。
GenerationType.SEQUENCE: 抛出验证异常(未找到序列)。
GenerationType.AUTO: 抛出验证异常(未找到序列)。
我的问题是:我们如何告诉 Hibernate 使用正确的序列?(没有为每个实体写明确的序列名称)
HUX布斯
相关分类