这两种自动价值生成策略有什么区别?

 1. @GeneratedValue
 2. @GeneratedValue(strategy=IDENTITY)

===============>>#1 票数:9 已采纳

如下所示:

AUTO指示持久性提供程序应为特定数据库选择适当的策略。

IDENTITY指示持久性提供程序必须使用数据库标识列为实体分配主键。

SEQUENCE指示持久性提供程序必须使用数据库序列列为实体分配主键。

TABLE表示持久性提供程序必须使用基础数据库表为实体分配主键,以确保唯一性。

在此处参考API http://docs.oracle.com/javaee/5/api/javax/persistence/GenerationType.html

===============>>#2 票数:3

如果未设置strategy属性,则默认为AUTO 从Hibernate文档中:
AUTO:根据基础数据库的功能选择IDENTITY,SEQUENCE或TABLE。

===============>>#3 票数:1

区别在于@GeneratedValue使用AUTO策略作为默认策略,而@GeneratedValue(strategy = IDENTITY)使用IDENTITY策略

这是策略的不同选择

AUTO-指示持久性提供程序应为特定数据库选择适当的策略。

IDENTITY-表示持久性提供程序必须使用数据库标识列为实体分配主键。

SEQUENCE-指示持久性提供程序必须使用数据库序列列为实体分配主键。

TABLE-表示持久性提供程序必须使用基础数据库表为实体分配主键,以确保唯一性。

  ask by Nandkumar Tekale translate from so

未解决问题?本站智能推荐:

1回复

EclipseLink和Hibernate之间的区别在于长时间运行的会话(Vaadin 7和JPAContainer)

虽然我需要这个答案来更好地理解如何在Wildfly 8.1中集成Vaadin 7和JPAContainer插件,但这是一个适用于Hibernate和Eclipse-link JPA实现的一般性问题。 JPACaontainer Vaadin Addon建议为整个servlet会话安装一个E
2回复

带有多个映射和相同值类型的Hibernate模式生成错误?

Hibernate(核心{4.2.7.SP5-redhat-1},使用方言PostgreSQL82Dialect)正在生成一个我不了解的模式,当我认为不应该使用时,它就会失败。 我得到的例外是 这是正确的,因为我没有尝试在另一列中插入任何内容。 我认为我不必这样做,因为这些列引用了两
2回复

在Hibernate中生成实体

我必须开发一个java Web应用程序。 对于持久性,我将使用hibernate。 我是一名symfony2开发人员,我喜欢使用Doctrine 2控制台生成我的实体。 那么hibernate(或其他众所周知的Java ORM)是否有类似的工具可以自动生成实体?
2回复

Hibernate不允许我添加具有自动生成的身份PK的Derby数据库的实体

我有一个包含以下字段的Derby数据库表。 数据库ID字段自动生成并递增。 使用NetBeans我正在尝试将Hibernate用作ORM。 在...之前,我已经使用过Linq2SQL和EF。 这是我生成的POJO,我相信注释是正确的。 这是我的插入代码。 它在s
6回复

Hibernate和JPA有什么区别?

当我在大学学习网络编程时,他们告诉我们关于休眠的问题。 我们使用了一段时间,我甚至有机会在一家公司的真实场景中使用它近8个月。 现在我完全切换到Java EE 6( 我爱上了:) ),我使用JPA来满足我的ORM需求。 我使用它已经有几个月,但我真的不明白一个和另一个之间有什么区别
1回复

生成Hibernate POJO类

我正在使用Ant Script从现有表中生成带有注释的休眠pojo类。 我陷入了一个问题。 问题是我有两个类Person和Address。 这两个类之间存在一个OneToMany映射。 生成的类包含: 我有一种情况,我不想生成地址集。 有没有办法生成没有设置的POJO。
4回复

Hibernate自动创建数据库

我有一个Java EE Hibernate项目,我使用MySQL作为数据库。 我希望当我第一次运行项目时,它会自动创建数据库。 这是我的hibernate.cnf.xml : 当我第一次在另一台计算机上运行该项目时,如何创建数据库InternetProject ? 根据
22回复

JPA和Hibernate有什么区别? [关闭]

我知道JPA 2是一个规范,而Hibernate是ORM的工具。 另外,我了解到Hibernate具有比JPA 2更多的功能。但是从实际的角度来看,真正的区别是什么? 我有使用iBatis的经验,现在我正在尝试学习Hibernate或JPA2。 我拿起Pro JPA2书籍,并且一直指“
4回复

hibernate4中的默认值

我有映射到oracle数据库表的Object类。 在此类中,数据库中的一列具有默认值。 我用了这个:@Column(name =“ FK_STATUS”,nullable = false,columnDefinition =“ int default 1”)数据库中的列类型是Number。
1回复

Hibernate标准接受%%值

我使用下面的Hibernate代码来过滤workFlowName 。 问题是当我从web(TextBox)传递值到workFlow时 。正确获取值(如果获取10条记录,我在文本框中传递sym 。如果我再次传递相同的值,如%sym% ,它将获取相同的记录)。 当%%作为参数时,标准是