我是HQL的新手,请告诉我如何在HQL中编写此查询。
我的SQL方法是
public Integer validateEditDate(int id, String date);
我的SQL查询是
SELECT
count(a.activity_task_id)
FROM activity_task_details AS a
JOIN milestone_activity_details AS b
ON a.milestone_activity_id = b.milestone_activity_id
WHERE a.milestone_activity_id = 17
AND DATE(a.task_end_date) > '20161229';
哪里id
和哪里date
是动态的
请在Hql查询中转换此sql查询
要在HQL中转换SQL查询,首先必须定义有关db表映射的类。
您有以下两个表:
activity_task_details milestone_activity_details
因此,您必须具有两个类,如下所示:
ActivityTaskDetails MilestoneActivityDetails
因此,您必须将字段映射为属性。假设您已完成此操作,则查询将变为:
SELECT
count(a.activity_task_id)
FROM ActivityTaskDetails a, MilestoneActivityDetails b
WHERE a.milestone_activity_id = b.milestone_activity_id
AND a.milestone_activity_id = :paramId
AND a.task_end_date > :paramDate;
注意,如果可能的话,您task_end_date
在课堂上ActivityTaskDetails
声明为date
要执行查询:
String hql = "Your HQL query write upper";
Query q = session.createQuery(hql);
q.setString("paramId", id);
q.setDate("paramDate", date);
q.list();
session
是获取会话工厂对象的变量
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句