基本值类型
内置的 basic mapping types 可以大致地分类为:
integer, long, short, float, double, character, byte, boolean, yes_no, true_false
这些类型都对应 Java 的原始类型或者其封装类,来符合(特定厂商的)SQL 字段类型。boolean, yes_no
和 true_false
都是
Java 中 boolean
或者 java.lang.Boolean
的另外说法。
string
从 java.lang.String
到 VARCHAR
(或者 Oracle 的 VARCHAR2
)的映射。
date, time, timestamp
从 java.util.Date
和其子类到 SQL 类型 DATE
,TIME
和 TIMESTAMP
(或等价类型)的映射。
calendar, calendar_date
从 java.util.Calendar
到 SQL 类型 TIMESTAMP
和 DATE
(或等价类型)的映射。
big_decimal, big_integer
从 java.math.BigDecimal
和 java.math.BigInteger
到 NUMERIC
(或者 Oracle 的 NUMBER
类型)的映射。
locale, timezone, currency
从 java.util.Locale
,java.util.TimeZone
和 java.util.Currency
到 VARCHAR
(或者 Oracle 的 VARCHAR2
类型)的映射。
Locale
和 Currency
的实例被映射为它们的 ISO 代码。TimeZone
的实例被影射为它的 ID
。
class
从 java.lang.Class
到 VARCHAR
(或者 Oracle 的 VARCHAR2
类型)的映射。Class
被映射为它的全限定名。
binary
把字节数组(byte arrays)映射为对应的 SQL 二进制类型。
text
把长 Java 字符串映射为 SQL 的 CLOB
或者 TEXT
类型。
serializable
把可序列化的 Java 类型映射到对应的 SQL 二进制类型。你也可以为一个并非默认为基本类型的可序列化 Java 类或
者接口指定
Hibernate 类型 serializable
。
clob, blob
JDBC 类 java.sql.Clob
和 java.sql.Blob
的映射。某些程序可能不适合使用这个类型,因为 blob 和 clob 对象可能
在一个事务之外
是无法重用的。(而且, 驱动程序对这种类型的支持充满着补丁和前后矛盾。)
imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary
一般来说,映射类型被假定为是可变的 Java 类型,只有对不可变 Java 类型,Hibernate 会采取特定的优化措施,
应用程序会把这些
对象作为不可变对象处理。比如,你不应该对作为 imm_timestamp
映射的 Date 执行
Date.setTime()
。要改变属性的值,并且保存这一改变,应用程序必须对这一属性重新设置一个新的(不一样的)对象。
实体及其集合的唯一标识可以是除了 binary
、 blob
和 clob
之外的任何基础类型。(联合标识也是允许的,后面会说到。)
在 org.hibernate.Hibernate
中,定义了基础类型对应的 Type
常量。比如,Hibernate.STRING
代表 string
类型。
分享到:
相关推荐
首先,Java的基本数据类型在Hibernate中有对应的类型映射。例如,int型在Hibernate中通常映射为Integer类型,因为数据库字段可能允许为空(NULL),而Java的基本类型不能是NULL。同样,boolean型在Hibernate中映射为...
下面将详细介绍Hibernate中的各种基本数据类型及其在不同数据库中的映射。 #### 基本数据类型映射 1. **Integer/Int**: 映射到`java.lang.Integer`,在SQL中对应`INTEGER`类型,占用4字节。 2. **Long**: 映射到`...
2. **实现Hibernate的Type接口**:这个接口是自定义数据类型的核心,它定义了如何在Java对象和SQL值之间进行转换。你需要实现`nullSafeGet()`和`nullSafeSet()`方法,分别用于从ResultSet中读取数据和将数据写入...
首先,我们来看一下基本数据类型的映射。`integer`对应Java中的`int`或`Integer`,在SQL中映射为`INTEGER`类型;`long`对应`long`或`Long`,映射为`BIGINT`;`short`对应`short`或`Short`,映射为`SMALLINT`;`float...
#### 映射枚举类型的基本方式 Hibernate提供了一个专门用于枚举类型映射的类`org.hibernate.type.EnumType`。通过这个类,我们可以选择将枚举实例的`name`或者`ordinal`映射到数据库。具体的配置是在Hibernate的...
这与 Java 中的长整形基本数据类型 long 不同,LONG 类型主要用于不需要作字符串搜索的长串数据。 在 Hibernate 框架中,使用自定义类型映射 Oracle 中的 LONG 类型字段是一种常见的解决方案。通过实现 UserType ...
本文将深入探讨 Hibernate 4 的基本配置方式,以便开发者能够更好地理解和实施相关配置。 首先,我们有传统的XML配置方式,通常通过`hibernate.cfg.xml`文件进行。这个文件包含了Hibernate所需的数据库连接信息、...
### Java基本数据类型及其字节大小 在Java编程语言中,基本数据类型是构建更复杂数据结构的基础。了解这些类型及其占用的字节数对于内存管理和优化程序性能至关重要。下面详细介绍了Java中的基本数据类型以及它们所...
### Hibernate基本知识点详解 #### Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它为Java应用程序提供了简化的方式去处理数据库操作。通过提供一种面向对象的方法来与关系型数据库进行交互,...
### Hibernate基本功能详解 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。本篇文章主要介绍利用Hibernate框架来实现基本的功能...
1. **基本数值类型**: - `byte` 和 `java.lang.Byte` 对应于 SQL 的 `TINYINT` - `short` 和 `java.lang.Short` 对应于 SQL 的 `SMALLINT` - `int` 和 `java.lang.Integer` 对应于 SQL 的 `INTEGER` - `long` ...
文档还可能包含对Hibernate类型系统的讨论,包括值类型、基本值类型、自定义值类型和任意类型映射。类型系统允许开发者在持久化层面上对Java基本类型、基本类型的包装类以及其他复杂的值类型进行处理。 通过以上...
在Hibernate中,如果Clob字段的值是字符串,可以通过将Clob字段映射为String类型,让Hibernate自动处理转换。这种方式简单易用,但可能不适合非常大的文本,因为可能会导致内存溢出。 3.3 直接使用Clob类型: 对于...
首先,我们需要了解一个基本的Hibernate映射文件结构: ```xml <hibernate-mapping> <!-- 映射类的属性 --> </hibernate-mapping> ``` 这里的`<class>`标签表示映射到特定的Java类,其属性`name`指定了对应的...
在使用Hibernate进行查询前,首先需要进行基本的配置,包括创建hibernate.cfg.xml配置文件,设置数据库连接信息,以及实体类和表的映射文件(.hbm.xml)。 三、Entity类与表的映射 在Hibernate中,每一个数据库表都...
- **值类型**: 包括基本类型、复合类型、集合类型。 - **实体类型**: 映射实体类型的细节。 - **类型分类的意义**: 不同类型的区别及其用途。 - **定制类型**: - **使用org.hibernate.type.Type**: 创建自定义类型...
这种情况下,集合中的每个元素都是一个值类型,而不是实体类型。 - **1.3.5 双向关联** 双向关联意味着两个方向都维护了关联关系。这在实现一对多或多对多的关系时非常常见。 - **1.3.6 处理双向链接** 当处理...
接着,文档通过建立一个名为EventManager的Web应用程序的实例,详细介绍了如何映射关联、处理集合值类型、实现双向关联、操作Web层并进行部署和测试。这部分内容适合想要掌握Hibernate在实际应用中如何进行对象和...
以上这些JAR包构成了Hibernate的基本运行环境,通过它们,开发者可以轻松地将Java对象与数据库表进行映射,执行CRUD(创建、读取、更新、删除)操作,并进行复杂的查询。在实际开发中,通常还会根据需求添加其他的...