博为峰JavaEE技术文章 —— Hibernate 指南(3)Hbm文件

前面讲了id元素的使用事项,接着上一节,小博老师继续介绍这个案例。接下来看看generator元素的相关使用方法。


两个<property />元素声明了Event类的其余两个持久属性:date和title。 date属性定义了列属性column,但标题不包括。在没有列属性的情况下,Hibernate使用属性名作为列名。在表结构定义和Event类的定义中我们可以看到title在两者定义的名字是相同的,所以可以省略column属性的定义。但日期属性在Event类中定义为date,在表中的列名是EVENT_DATE,所以需要明确指定column的值。

title映射也缺少一个type属性。在映射文件中声明和使用的type(数据类型)既不是Java数据类型也不是SQL数据库类型,它们是Hibernate定义的映射类型,是在Java和SQL数据类型之间转换的转换器。如果在映射中未指定type属性,则Hibernate将自动尝试使用正确的转换器,方法是使用Java反射来确定已声明属性的Java类型,并为该Java类型使用默认映射类型。

在某些情况下,这种自动检测可能会出现问题,如date属性所示。 Hibernate无法确定type(类型为java.util.Date)是要映射到SQL DATE,TIME或TIMESTAMP数据类型。此时,需要通过type属性指定org.hibernate.type.TimestampType转换类,用以保留完整的日期和时间信息。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值