首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JPA / Hibernate中,@GeneratedValue中的字段生成器有什么用?

在JPA / Hibernate中,@GeneratedValue中的字段生成器有什么用?
EN

Stack Overflow用户
提问于 2021-10-28 20:57:22
回答 2查看 26关注 0票数 0

当您创建像这样的id时

代码语言:javascript
复制
@Id
@GeneratedValue(generator = "increment")
private Long Id;

生成器字段的作用是什么?生成器的含义是什么?

JPA的任何实现是否应该提供所有类型的生成器:示例生成器=“增量”?

EN

回答 2

Stack Overflow用户

发布于 2021-10-28 21:31:01

这是一种创建唯一ids的方法。不同的数据库提供了不同的创建唯一ids的方法。换句话说,当保存新行时,Hibernate/JPA会自动将一个值放到该字段中。例如,mysql提供自动增量列(strategy=identity),而oracle提供序列(strategy=identity)。

如果数据库不提供上述任何功能,策略table将使用由JPA创建的表,该表用于以安全的方式创建唯一的、单调递增的数字,代价是对数据库进行额外的查询。

来自hibernate的关于这个主题的文档非常非常好,值得一读……而且Hibernate比JPA有更多的特性,这是很好了解的。

票数 0
EN

Stack Overflow用户

发布于 2021-10-28 22:49:31

文档上写着:https://docs.oracle.com/javaee/6/api/javax/persistence/GeneratedValue.html#generator()

生成器字段是您指定的位置:在SequenceGenerator或TableGenerator注释中指定要使用的主键生成器的名称。

但在我给出的示例(增量)中,它还不止于此,您可以使用该字段指定一个hibernate生成器,它不是JPA的一部分。

增量就是其中之一。如果您想了解更多关于它们的信息,请查看此处:https://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/#d5e2614

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69760847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档