类型-hibernate与java类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型-hibernate与java类型相关的知识,希望对你有一定的参考价值。

hibernate的映射文件中type属性支持两种类型

   java类型

   hibernate类型

说明:java类型效率更高

 


hibernate-3.5.6-Final-dist/hibernate-distribution-3.5.6-Final/documentation/manual/zh-CN/html_single/index.html#mapping-types

5.2.2. 基本值类型

内置的 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 类型 DATETIME  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.Localejava.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 类型。


以上是关于类型-hibernate与java类型的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate框架的学习-第二天

类型-hibernate与java类型

@CreationTimestamp 和 @UpdateTimestamp 不适用于 LocalDateTime

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

Hibernate映射java的boolean类型

Hibernate 学习路程之一(Hibernate 环境的搭建)