hibernate 替换@SequenceGenerator,因为它已弃用

emeijp43  于 2023-03-08  发布在  其他
关注(0)|答案(2)|浏览(338)

@SequenceGenerator有问题:

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

应用程序启动时显示警告:
警告7388 --- [主要]组织.休眠.标准.弃用:HHH90000014:发现使用了不推荐使用的[org. hib.id.SequenceHiLoGenerator]基于序列的ID生成器;请使用org.hibernate.id.enhanced.SequenceStyleGenerator。有关详细信息,请参见Hibernate域模型Map指南
我试图找出如何用新代码替换过时代码,但找不到任何解决方案。

toe95027

toe950271#

根据警告消息和Hibernate文档(Hibernate deprecated list),您应该使用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")
yh2wf1be

yh2wf1be2#

在我的例子中,我有这样的属性:

spring.jpa.hibernate.use-new-id-generator-mappings=false

一位同事错误地添加了它,不需要它。删除它后,警告日志被删除。
希望这能帮到什么人。

相关问题