我試圖通過以下方式通過日期,但無法成功。 dateAnswered是存儲日期爲2017-09-13 00:00:00的字段。如何使用Hibernate命名查詢(HQL)在MYSQL的Timestamp字段中搜索當前日期?
誰能告訴我在哪裏得到錯誤:
方法1:的setParameter
@NamedQuery(name = "findAnswar", query = "SELECT a FROM Answar a WHERE (a.dateAnswered = :currentDate)"
Try 1:
super.em.createNamedQuery("findAnswar" , Answar .class).setParameter("currentDate", new Date()); //Not receive any data
Try 2:
Date date = new Date();
date.setHours(0);
date.setMinutes(0);
date.setSeconds(0);
super.em.createNamedQuery("findAnswar" , Answar .class).setParameter("currentDate", date) //Not receive any data
方式二:設置內置參數
@NamedQuery(name = "findAnswar", query = "SELECT a FROM Answar a WHERE (a.dateAnswered = current_date())") //NOT WORKS
It works if i do add Temporal to getter:
@Column(name = "DATE_ANASWERED")
@Temporal(TemporalType.DATE)
public Date getDateAnswered() {
return dateAnswered ;
}
BUT IT GIVES another issue : Caused by: org.hibernate.HibernateException: Wrong column type in db.ANSWAR for column DATE_ANASWERED. Found: datetime, expected: date
@NamedQuery(name = "findAnswar", query = "SELECT a FROM Answar a WHERE (a.dateAnswered = current_date)") //NOT WORKS - JPA errors
即使在#1的以前的答案我不能夠找到任何相關的解決方案。任何人都可以幫助修復相同的使用命名查詢只?
你在第一個例子中得到什麼錯誤信息? – olegsv
@olegsv沒有收到任何數據.. – Harpreet