我无法将java.util.Data与Oracle Timestamp
进行比较存储在地址表中的日期类似于29-JUL-13 07.15.57.529000000 PM 我的地址类如下所示
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "address")
public class Address {
@Id
@GeneratedValue(generator = "assigned-by-code")
@GenericGenerator(name = "assigned-by-code", strategy = "assigned")
@Column(name = "id")
private String id;
@Type(type = "timestamp")
@Column(name = "lastaccesstimestamp")
private Date lastAccessTimestamp;
getter and setter
}
@Query("from Address a where a.associationId =:associationId and a.lastAccessTimestamp >=:lastAccessTimestamp")
List<Address> findLatestUpdatedAddresses(
@Param("lastAccessTimestamp") Date lastAccessTimestamp,
@Param("associationId") String associationId);
findlatestUpdateAddress方法中的lastAccessTimestamp是Calendar.getInstance()。getTime()(例如Mon Jul 29 10:10:09 IST 2013)。
它给出了月,日和年压缩的正确结果,但是当分钟,秒或小时发生变化时,它没有给出正确的结果。
例如,如果lastAccessTimestamp是星期一7月29日10:10:09 IST 2013和DB日期是30-JUL-13 07.15.57.529000000 PM它将返回结果
但如果lasteAccessTimestamp是IST 2013年7月30日星期一07:09:09它没有给出任何结果我认为小时分钟和第二部分不被认为是压缩。
简而言之,月份日期和年份压缩工作正常,但是对于分钟秒和小时,它不起作用。
即使有任何替代解决方案被接受,任何建议都将受到赞赏。
答案 0 :(得分:0)
请尝试替换你的:
@Type(type = "timestamp")
带
@Temporal(TemporalType.TIMESTAMP)
此注释将告诉hibernate在处理对象映射时包含小时/分钟/秒。