hibernate中java.util.Date类型映射 - 编程入门网
<property name="state" type="boolean" column="state"></property>
<property name="role" type="boolean" column="role"></property>
<property name="points" type="integer" column="points"></property>
<property name="registerDate" type="timestamp" column="registerdate"></property>
</class>
</hibernate-mapping>
Java代码
存储结束之后,由数据库中重新查询出此对象: Java代码 User savedUser = session.load(User.class,id); 而此时 testUser.getRegisterDate.equals(savedUser.getRegisterDate)返回值为 false; 此时可发现test.getRegisterDate().class为java.util.Date, savedUser.getRegisterDate().class为java.sql.Timestamp。查看java的文档可知 java doc 写道 The Timestamp.equals(Object) method never returns true when passed an object that isn''t an instance of java.sql.Timestamp, because the nanos component of a date is unknown. As a result, the Timestamp.equals(Object) method is not symmetric with respect to the java.util.Date.equals(Object) method. 也就是说Timestamp和Date类型并不能进行相等比较的。当然在程序中比较两个时间点 的相等性是不切合实际的,但如果一些特殊应用需要比较的话,可以使用其他方法解决。 例如: Java代码
这样即可顺利转变类型及值了。但是Hibernate中并没有对java.util.Date类型进行很 好的映射,个人也觉得可以不采用Date类型记录时间,可适当考虑Calendar类型。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |