基于注解的hibernate主键设置:@Id.
那么它的生成规则是什么呢?是由@GeneratedValue来规定的。
我们先来看看它是如何定义的:
@Target({METHOD,FIELD})
@Retention(RUNTIME)
public @interface GeneratedValue{
GenerationType strategy() default AUTO;
String generator() default "";
}
public enum GenerationType{
TABLE,
SEQUENCE,
IDENTITY,
AUTO
}
现在我们看到了,它提供了4种生成策略:
TABLE:使用一个特定的数据库表格来保存标识符序列。
SEQUENCE:生成序列化标识符。
IDENTITY:标识符有数据库自动生成(主要是自动增长型)
AUTO:标识符生成工作由hibernate自动处理。实际项目开发不建议使用。
注意:当主键为int,而数据库中又不是自动增长型时,使用@GeneratedValue是无法正常工作的。
我们也可以使用下面的方式来自己指定我们的主键值:
@GeneratedValue(generator = "c-assigned")
@GenericGenerator(name = "c-assigned", strategy = "assigned")
private String employeeId;
或者直接不要定义@GeneratedValue,只定义@Id效果也是一样的。
分享到:
相关推荐
本教程将深入探讨如何在Hibernate中设置复合主键,并提供一个可直接使用的配置示例。 一、理解复合主键 在数据库设计中,复合主键是指由两个或更多列组成的键,这些列共同构成表的唯一标识。当单一的字段无法唯一...
当我们在Hibernate中保存`Person`或`Profile`时,由于设置了双向关联,Hibernate会自动处理两个实体之间的关联,确保数据的一致性。`CascadeType.ALL`表示所有操作(包括保存、更新、删除)都会级联到对方实体。 ...
在Hibernate中,有三种主要的注解方式来映射联合主键,以下是对这三种方式的详细解释: 1. **使用`@Embeddable`和`@Id`** 在这种映射方式中,联合主键的字段被放在一个单独的类中,这个类需要实现`java.io....
在"hibernate中基于主键的one2one",我们主要讨论的是通过主键来建立这种关联的方式。 首先,让我们来看看配置文件如何设置一对一的关联。在Hibernate的映射文件(.hbm.xml)中,我们通常会使用`<one-to-one>`标签...
本文将详细介绍如何使用Hibernate注解来定义联合主键。 首先,我们需要了解联合主键的定义方式。在Hibernate API中,有三种方法来定义联合主键: 1. 使用`@Embeddable`注解定义一个独立的主键类,然后将这个类的...
在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,Hibernate会自动调用数据库的内置机制来生成主键。 2. **Sequence策略**: 适用于Oracle等支持序列的...
在Hibernate中,无主键表映射通常通过`@Embeddable`和`@EmbeddedId`注解来实现。`@Embeddable`注解用于定义一个包含复合主键字段的类,而`@EmbeddedId`注解则用在实体类上,指定这个复合主键类。 以下是一个简单的...
`@Id`注解标记实体类中的主键字段,而`@GeneratedValue`用于指定主键生成策略,如自增、序列等。 ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long ...
SSH2用户注册是一个基于Spring、Struts2和Hibernate框架的Web应用程序开发过程,其中使用了注解来简化配置。在本教程中,我们将探讨如何利用这些技术构建一个用户注册系统,而无需创建独立的数据库脚本。 首先,SSH...
在Hibernate中,我们可以通过`@Embeddable`和`@EmbeddedId`注解来实现复合主键的配置。 1. 创建复合主键类 首先,我们需要创建一个表示复合主键的类,该类需要被`@Embeddable`注解标记。例如,假设我们有用户地址...
- `constrained`: 在注解中,如果设置为`true`,表示这个关联是被约束的,即这个实体的主键也是另一个实体的外键。 ### 博客链接 博客地址(http://blog.csdn.net/smilefyx/article/details/48951933)提供了更...
### Hibernate 全部注解详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,允许开发人员将 Java 应用程序中的对象映射到数据库表,反之亦然。使用 Hibernate 可以极大地简化数据库访问代码的...
#### 一、Hibernate注解开发概述 **Hibernate**是一种流行的Java持久层框架,提供了对象关系映射(ORM)的功能,使得Java开发者能够更高效地进行数据库操作。注解作为Java SE 5引入的新特性之一,在Hibernate中被广泛...
在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...
本文主要总结了Hibernate中常见的注解用法,涵盖了类级别和属性级别的注解,以及与主键和非主键相关的注解。 1. 类级别注解: - `@Entity`: 这个注解是必不可少的,它告诉Hibernate一个Java类是一个实体,可以映射...
总的来说,Spring MVC、Spring和Hibernate的注解整合提供了高效且灵活的开发方式,减少了XML配置,提高了代码的可读性和可维护性。这使得开发者能够更加专注于业务逻辑,而不是框架的底层配置。通过这样的整合,我们...
通过阅读博客文章,你可以看到具体示例和详细的配置步骤,这将有助于加深对Hibernate注解关联的理解。同时,实践操作可以帮助巩固理论知识,确保你能灵活地应用于实际项目中。 总之,掌握Hibernate的注解关联配置是...
#### 一、JPA与Hibernate注解基础 JPA(Java Persistence API)是一种标准规范,用于实现对象关系映射(ORM),允许开发人员使用注解或XML来描述实体对象与数据库表之间的映射关系。Hibernate是JPA的一种实现,它...
开发者可能会在该文件中找到一个简单的Struts2 Action,一个带有注解的Spring Bean,以及一个用Hibernate注解配置的实体类。通过分析和运行这个`test`文件,可以更好地理解三大框架如何协同工作,以及注解如何简化...
在本视频教程“Spring MVC + Spring + Hibernate 全注解整合开发视频教程 04”中,我们将深入探讨Java企业级开发中的三大核心技术——Spring、Spring MVC和Hibernate的集成与应用,尤其是通过注解实现的简化配置。...