替换@SequenceGenerator,因为它已弃用

2022-09-01 15:37:08

我有一个问题:@SequenceGenerator

@SequenceGenerator(name="pk_user_id", sequenceName="seq_user_id", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="pk_user_id")

当应用程序启动时,它会显示警告:

WARN 7388 --- [ main] org.hibernate.orm.deprecation : HHH90000014: 发现使用已弃用的 [org.hibernate.id.SequenceHiLoGenerator] 基于序列的 id 生成器;使用 org.hibernate.id.enhanced.SequenceStyleGenerator 代替。有关详细信息,请参阅休眠域模型映射指南

我试图找出如何用新代码替换已弃用的代码,但找不到任何解决方案。


答案 1

根据警告消息和休眠文档(休眠已弃用列表),您应该使用SequenceStyleGenerator。或者更好地使用@GenericGenerator并指定生成器策略。

下面是一个典型的用法示例:
@GenericGenerator(
        name = "wikiSequenceGenerator",
        strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
        parameters = {
                @Parameter(name = "sequence_name", value = "WIKI_SEQUENCE"),
                @Parameter(name = "initial_value", value = "1000"),
                @Parameter(name = "increment_size", value = "1")
        }
)
@Id
@GeneratedValue(generator = "wikiSequenceGenerator")

答案 2

推荐