我一直在嘗試幾個小時才能得到這個權利,但我無法找到解決方案。HQL內部加入和日期查詢
我有一個表「訂單」和一個表「事件」,其中eventId是訂單中的外鍵。我有一個訂單列表,現在只是過濾事件,但現在我也希望它過濾日期,所以我想我會改變查詢。
我想加入事件表,但我似乎無法得到它的工作。 這是查詢:
@Transactional
@SuppressWarnings("unchecked")
public List<Orders> getOrders(Integer id){
// java.util.Date utilDate = new SimpleDateFormat("yyyy-MM-dd").parse(test);
// java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
hql = "FROM Orders o join o.eventId e where o.eventId=" +id ;
query = getCurrentSession().createQuery(hql);
return (List<Orders>) query.list();
}
你註釋掉的不妥之處代碼顯示瞭如何爲日期聲明一個變量,但我沒有看到任何告訴我們在查詢中使用該日期的事情,或者當您嘗試使用該日期時發生的事情;所以說出了什麼問題有點難。也就是說,我可以建議使用查詢參數比將查詢片段與變量的值連接起來更好,並且在日期情況下,特別是使用參數錯誤的方法更少。 –
我註釋掉了日期,因爲此查詢之前沒有嘗試加入Event表。我做了這個,看看我是否正確連接.. 這是工作: hql =「從訂單o其中o.eventId =」+ ID; 但是這不是工作: hql =「FROM訂單o加入o.eventId e其中o.eventId =」+ id; – 1oneSquared
'加入o.eventId e'看起來不對我。它看起來像你試圖將'Orders'連接到'Orders'中的列而不是另一個表中。 – JonK