java日期类型在Hibernate中的处理

java日期类型在Hibernate中的处理
java中的表示日期时间的类型很多,主要有下面一些:
java.util.Calendar(和区域有关,可表示年,月,日,时,分,秒)
java.util.Date(可表示年,月,日,时,分,秒)
java.sql.Date(可表示年,月,日)
java.sql.Time (可表示时,分,秒)
java.sql.Timestamp(可表示年,月,日,时,分,秒,纳秒)
在对象定义时,究竟定义为哪种类型,我们得要求项目需求来选择不同精度的类型。

Hibernate对上面的时间类型都有很好的支持,但是,不同的类型,数据库中的字段也得选择相应的类型,以mysql为例,就存在date,time,datetime,timestamp等几种。
hibernate的映射书写时要注意,日期类型一般都要明确予以指定。如果你使用的是注解映射配置,类型选择的又是java.util.Calendar,java.util.Date,此时需要使用@Temporal 明确指定具体类型,对应的取值有TemporalType.DATE,TemporalType.TIME,TemporalType.TIMESTAMP几种。
最后,hibernate中以时间作为查询条件时,也需要明确指定传入参数类型,大家要选择带有3个参数的那个setParameter方法。