increment
用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。
在集群下不要使用。
identity
对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。
sequence
在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
hilo
使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和字段(默认分别是 hibernate_unique_key 和next_hi)作为高位值的来源。 高/低位算法生成的标识符只在一个特定的数据库中是唯一的。
seqhilo
使用一个高/低位算法来高效的生成long, short 或者 int类型的标识符,给定一个数据库序列(sequence)的名字。
uuid
用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。
guid
在MS SQL Server 和 MySQL 中使用数据库生成的GUID字符串。
native
根据底层数据库的能力选择identity, sequence 或者hilo中的一个。
assigned
让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素没有指定时的默认生成策略。
分享到:
相关推荐
8. **自增主键**:例如MySQL的AUTO_INCREMENT,Hibernate通常通过`@GeneratedValue`和`@Id`注解配合`GenerationType.IDENTITY`策略来处理。 9. **枚举类型**:在数据库中可以使用CHAR或INT存储,Hibernate通过`@...
在Hibernate中,为了能够将Java对象的数据持久化到数据库中,需要对Java类型和SQL类型进行映射。以下是一些常见的Hibernate映射类型及其对应的Java和SQL类型: 1. `Integer` 或 `java.lang.Integer`: 映射到标准SQL...
在`<composite-id>`标签内,通过`<key-property>`子标签分别指定这两个字段,并且指定了对应的数据库列名、类型等属性。 ```xml ``` 这里,`UsersPK`是用于封装联合主键值的Java类,其结构应当与`...
- **Hibernate集合映射之Map-----element映射实体类型值.doc、Hibernate集合映射之Map-----element映射基本类型值.doc**:讨论了如何映射Java集合到数据库表,特别是使用Map类型和Element元素。 - **Hibernate with ...
在Hibernate中,主键通过`@Id`注解标记,并可以使用`@GeneratedValue`控制自增策略。 3. **持久化(Persistence)**: Hibernate通过`Session`接口实现对象的持久化,它可以保存、更新和删除实体对象,并将这些变化...
- **Type**接口:定义了Hibernate的映射类型,将Java对象映射到数据库关系数据。预定义了许多实现,如PrimitiveType(Java基本类型)、DateType(日期类型)、BinaryType(字节数组类型)。此外,还可以通过实现...
- Hibernate的`hibernate-types`库可能包含了一些自定义类型的实现,比如日期时间类型、JSON类型等,使得数据库字段类型与Java类型之间的转换更加灵活。 8. **事件和拦截器**: - Hibernate支持监听和拦截实体...
2. Table/Column:使用@Table和@Column注解来指定表名和字段名,其他如@Temporal、@Lob等注解用于特殊类型的映射。 3. Inheritance:Hibernate支持多种继承映射策略,如单表继承、联合继承和表-per-hierarchy。 四...
7. **hibernate.jdbc.use_get_generated_keys**:在插入数据后,利用JDBC3的`getGeneratedKeys`方法获取自增列的值。 正确配置这些属性可以显著提升Hibernate应用的性能,减少资源消耗,并提供更好的调试和维护能力...
6. **@ManyToOne, @OneToOne, @OneToMany, @ManyToMany**: 定义不同类型的关联关系。 **四、查询语言** 1. **HQL(Hibernate Query Language)**: Hibernate提供的面向对象的查询语言,类似于SQL,但操作的是对象而...
6. **Criteria 查询**:另一种查询方式,提供动态构建查询的能力,更灵活且类型安全,适用于运行时构建查询的情况。 7. ** Criteria API**:包括`Criteria`、`DetachedCriteria`和`Projection`等接口,用于构建复杂...
主键生成策略还有多种方式,如`Assigned`(由外部程序负责),`Increment`(每次自增1,适用于MySQL),`Uuid`(生成UUID字符串),以及`Hilo`(高效ID生成算法)。选择哪种策略取决于具体需求和数据库类型。 ...
- `@Converter`: 自定义类型转换,用于处理Hibernate默认无法处理的数据类型。 - `@Type`: 使用自定义的Hibernate类型,如日期时间格式等。 以上仅是Hibernate Annotation部分核心概念的简述,实际使用中还需要...
Hibernate 映射文件遵循一定的文档类型定义 (DTD),这有助于确保文件格式的正确性。 - **5.1.1.1 实体解析器** 实体解析器用于处理映射文件中的引用实体,通常用于定义命名空间和导入其他映射文件。 - **...
8. Association Management: Hibernate支持多种关联类型,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)、多对多(ManyToMany)。通过注解或XML配置,可以轻松管理这些关联关系。 综上所述,...
- 介绍如何使用数据库自增字段或序列作为主键。 - **5.1.4.5 程序分配的标识符(AssignedIdentifiers)** - 说明如何手动指定标识符。 以上是基于提供的文件信息中提到的部分章节内容所整理的关键知识点。这些...
- `<id>`标签定义了主键字段,包括字段名(`id`)、列名(`teacher_id`)和类型(`java.lang.Integer`)。 3. 实体类: 在Java代码中,需要创建对应的实体类,比如`Teacher`,并确保其属性与映射文件中的属性一一...
5. **属性映射**:定义实体类属性与数据库表字段之间的映射关系,支持基本类型、枚举类型、复杂类型等。 #### 六、集合映射 在对象关系映射中,集合属性的映射尤为重要,包括: 1. **集合属性**:实体类中的集合...
increment是一种插入数据的时候hibernate会给主键添加一个自增的主键的策略。这种策略维护一个计数器,所以在多个实例运行的时候不能使用这个方法。 foreign foreign是一种使用另外一个相关联的对象的主键的策略。...