符。uuid.string
适用于代理主键。UUID被编码成一个16字符长的字符串。assigned
适用于自然主键。由Java应用
程序负责生成标识符。foreign
适用于代理主键。使用另外一个相关联的对象的标识符。Hibernate映射类型 在对象/关系映射文件中,Hibernate采用映射类型作为Java类型和SQL类型的桥梁。Hibernate映射类型分为2种:内置映射类型和自定义映射类型。 1、内置映射类型 Hibernate对所有的Java原生类型、常用的Java类型如String、Date等都定义了内置的映射类型。表2列出了Hibernate映射类型、对应的Java类型以及对应的标准SQL类型。 表2:Hibernate内置映射类型 Hibernate映射类型
Java类型
标准SQL类型
大小integer/int
java.lang.Integer/int
INTEGER
4字节long
java.lang.Long/long
BIGINT
8字节short
java.lang.Short/short
SMALLINT
2字节byte
java.lang.Byte/byte
TINYINT
1字节float
java.lang.Float/float
FLOAT
4字节double
java.lang.Double/double
DOUBLE
8字节big_decimal
java.math.BigDecimal
NUMERIC
character
java.lang.Character/java.lang.String/char
CHAR(1)
定长字符string
java.lang.String
VARCHAR
变长字符boolean/ yes_no/true_false
java.lang.Boolean/Boolean
BIT
布尔类型date
java.util.Date/java.sql.Date
DATE
日期timestamp
java.util.Date/java.util.Timestamp
TIMESTAMP
日期calendar
java.util.Calendar
TIMESTAMP
日期calendar_date
java.util.Calendar
DATE
日期binary
byte[]
BLOB BLOBtext
java.lang.String
TEXT
CLOBserializable
实现java.io.Serializablej接口的任意Java类
BLOB
BLOBclob
java.sql.Clob
CLOB
CLOBblob
java.sql.Blob
BLOB
BLOBclass
java.lang.Class
VARCHAR
定长字符locale
java.util.Locale
VARCHAR
定长字符timezone
java.util.TimeZone
VARCHAR
定长字符currency
java.util.Currency
VARCHAR
定长字符hibernate-mapping这个元素包括三个可选的属性。schema属性,指明了这个映射所引用的表所在的schema名称。假若指定了这个属性,表名会加上所指定的schema的名字扩展为全限定名。假若没有指定,表名就不会使用全限定名。default-cascade指定了未明确注明cascade属性的Java属性和集合类Java会采取什么样的默认级联风格。auto-import属性默认让我们在查询语言中可以使用非全限定名的类名。 <hibernate-mapping schema="schemaName" default-cascade="none|save-update" auto-import="true|false" package="package.name" /> schema (可选): 数据库schema名称。 default-cascade (可选 - 默认为 none): 默认的级联风格。 auto-import (可选 - 默认为 true): 指定是否我们可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 package (可选): 指定一个包前缀,如果在映射文档中没有指定全限定名,就使用这个包名。 假若你有两个持久化类,它们的非全限定名是一样的(就是在不同的包里面--译者注),你应该设置auto-import="false"。假若说你把一个“