hibernate @GeneratedValue(strategy = GenerationType.UUID)和@UuidGenerator之间的区别

s5a0g9ez  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(157)

使用

@Id
@GeneratedValue(strategy = GenerationType.UUID)
private UUID id;
@Id
@GeneratedValue(strategy = GenerationType.UUID)
@UuidGenerator
private UUID id;
@Id
@GeneratedValue
@UuidGenerator
private UUID id;
@Id
@UuidGenerator
private UUID id;

我尝试了所有的方法,阅读了文档,我也用show_sql和generate_statistics prop 测试了它,我没有看到任何区别

xmd2e60i

xmd2e60i1#

正如Jesper在评论中已经提到的,@GeneratedValue来自JPA API(javax.persistence),而@UuidGenerator来自hibernate-core。
基本上,这意味着使用@UuidGenerator将您的代码耦合到Hibernate,这是JPA的一种实现。使用@GeneratedValue可以从特定的实现中删除代码,因此您可以将Hibernate更改为例如。稍后再联系。

相关问题