如何编写hql连接查询
how to write hql join query
我是 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 查询,您必须首先定义 class 数据库 table 映射。
你有这两个 table:
activity_task_details
milestone_activity_details
所以你必须有两个class,如下:
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
在 class 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
是获取会话工厂对象的变量
我是 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 查询,您必须首先定义 class 数据库 table 映射。
你有这两个 table:
activity_task_details
milestone_activity_details
所以你必须有两个class,如下:
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
在 class 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
是获取会话工厂对象的变量