首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate:关于@GeneratedValue工作原理的简要介绍

Hibernate:关于@GeneratedValue工作原理的简要介绍
EN

Stack Overflow用户
提问于 2012-08-03 10:35:01
回答 2查看 26.9K关注 0票数 15

从数据库的角度来看,我很难找到@GeneratedValue的准确解释,以及关于发生了什么的不同策略。

是否总是查询数据库并返回最后一个可用值?如果两个不同的进程(不同的Hibernate应用程序)同时访问同一个表,会发生什么情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-03 10:46:55

我假设你指的是JPA @GeneratedValue。

@GeneratedValue注释告诉ORM如何计算该字段的值。

例如:

代码语言:javascript
复制
 @Id
 @GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
 @Column(name="CUST_ID")
 public Long getId() { return id; }

 Example 2:

 @Id
 @GeneratedValue(strategy=TABLE, generator="CUST_GEN")
 @Column(name="CUST_ID")
 Long id;

要理解的关键是,生成的值有一个策略,而生成的值的策略决定了发生了什么。在上面的示例中,序列生成策略意味着ORM将在第一次保存对象时向数据库请求序列的新值。第二个示例指定了一个表生成策略,这意味着ORM将查询表中的一行以确定id的值。在示例2中,没有显示使用哪个表详细信息,因为它引用了名为"CUST_GEN“的生成器

你将会遇到典型的生成器。

  • 标识-插入后向自动确定列询问item
  • Sequence的值-该值来自db sequence
  • 表-该值来自数据库
  • 中的另一个表根据数据库类型

H111 UUID -在执行插入之前生成UUID<代码>H212F213

可以开发自定义生成器。与数据库的交互将取决于生成策略。

票数 23
EN

Stack Overflow用户

发布于 2012-08-03 10:45:49

请使用http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/链接进行参考。但是如果你能告诉我你在找什么,我也许能更好地帮助你。下面是关于@GeneratedValue注解…的一些细节我喜欢这篇关于同一主题http://elegando.jcg3.org/2009/08/hibernate-generatedvalue/的博客文章。他的解释工作做得很好。

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

https://stackoverflow.com/questions/11788483

复制
相关文章

相似问题

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