我一直在尝试几个小时才能得到这个权利,但我无法找到解决方案。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