Hibernate的映射类型分为两种,内置映射类型和客户化映射类型。
内置映射类型:负责把一些常见的java类型映射到相应的SQL类型
客户化映射类型:Hibernate允许用户实现UserType或CompositeUserType接口,来灵活定制客户化映射类型。客户化映射类型能够把用户定义的Java类型映射到数据库表的相应字段。
1、Hibernate内置的映射类型
1.1 Java基本的类型的Hibernate映射
int或integer——INTEGER
long——BIGINT
short——SMALLINT
byte——TINYINT
float——FLOAT
double——DOUBLE
big_decimal——NUMBERIC
character——CHAR
string——VARCHAR
boolean——BIT
1.2 Java时间和日期类型的Hibernate映射类型
date——DATE
time——TIME
timestamp——TIMESTAMP
calender—— TIMESTAMP
calender_date——DATE
1.2 Java大对象类型的Hibernate映射类型
binary——BLOB(Mysql)、BLOB(Oracle)
text——TEXT(Mysql)、CLOB(Oracle)
serializable——TEXT(Mysql)、CLOB(Oracle)
blob——BLOB(Mysql)、BLOB(Oracle)
假定Customer类的description属性为Java.sql.Clob类型,在Oracle数据库中的CUSTOMERS表的DESCRIPTION字段为CLOB类型,Customer.hbm.xml如下:
<property name="description" type="clob" column="DESCRIPTION" />
在应用程序中通过Hibernate来保存java.sql.Clob或java.sql.Blob实例时,必须包含两个步骤:
1.在数据库事务中先保存一个空的Clob或者Blob实例
2.接着锁定这条记录,更新步骤1中保存的Blob或Clob实例,把二进制数据或文本数据写到Blob或Clob实例中。例如:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
customer = new Customer();
customer.setDescription(Hibernate.createClob(" "));
session.save

本文详细介绍了Hibernate的映射类型,包括内置映射类型和客户化映射类型。内置映射类型涵盖Java基本类型、时间和日期类型、大对象类型的SQL映射。客户化映射类型则允许通过实现UserType或CompositeUserType接口来自定义映射,以适应复杂需求。以Customer类为例,展示了如何将description属性映射到Oracle数据库的CLOB类型,以及如何通过PhoneUserType类实现自定义映射。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



