1.java.util.Date和java.sql.Date的使用
在JPA中,通常会使用java.util.Date作为实体类中时间字段的类型,对应的属性的获取时,需要做如下的声明:
@Temporal(value = TemporalType.TIMESTAMP)
但是这么使用有个问题,从数据库中取出来的数据直接展示到页面上,显示的数据格式如下,不能满足实际的需要。
Tue Jun 09 00:00:00 CST 2009
当然,可以格式化处理时间,例如:Tue Jun 09 00:00:00 CST 2009,new java.sql.Date(date.getTime());
推荐方法:
实体类中的时间字段的类型,定义为java.sql.Date类型较好,省去了为了前端显示而做的格式转换工作。
2.时间字段的查询
应用了JPA(TopLink)的系统中,对时间字段作查询,需要注意的一点是:
JPA(TopLink)不支持oracle内置函数to_date('2009-06-15','YYYY-MM-DD')。
解决办法非常简单:
将时间类型参数看做字符串类型的数据查询即可。例如:dateColumn = '2009-06-11'