如何在 HQL 中重写此 sql 代码
How to rewrite this sql code in HQL
我需要获取 "Manager" 的 "name" 列 table.and 显示所有带有 "Manager.name" 的“家庭”列,如上所示。
SELECT Family.id, Family.name,Family.surname, Manager.name[Manager Name]
FROM Family
INNER JOIN Manager
ON Family.managerId=Manager.id;
我可以在 Managment studio 中执行这个 SQL 查询,但是当我尝试添加到休眠 (DAO) 时 class 我遇到了这个错误:
Request processing failed; nested exception is
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token:
ON near line 4, column 1 [SELECT Family.id,
Family.name,Family.surname, Manager.name AS ManagerName
不需要使用ON Family.managerId=Manager.id;
。只需定义两个实体之间的关系,例如:
@ManyToOne
@JoinColumn(name="managerId")
private Manager manager;
SELECT f.id, f.name,f.surname, m.name
FROM Family AS f
INNER JOIN Manager AS m
UPDATE
如果 Family 与 Manager 具有多对一关系,您可以直接加载 manager 的属性,而无需使用 INNER JOIN :
@ManyToOne
@JoinColumn(name="managerId")
private Manager manager;
SELECT f.id, f.name,f.surname, f.manager.name
FROM Family AS f
我需要获取 "Manager" 的 "name" 列 table.and 显示所有带有 "Manager.name" 的“家庭”列,如上所示。
SELECT Family.id, Family.name,Family.surname, Manager.name[Manager Name]
FROM Family
INNER JOIN Manager
ON Family.managerId=Manager.id;
我可以在 Managment studio 中执行这个 SQL 查询,但是当我尝试添加到休眠 (DAO) 时 class 我遇到了这个错误:
Request processing failed; nested exception is org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: ON near line 4, column 1 [SELECT Family.id, Family.name,Family.surname, Manager.name AS ManagerName
不需要使用ON Family.managerId=Manager.id;
。只需定义两个实体之间的关系,例如:
@ManyToOne
@JoinColumn(name="managerId")
private Manager manager;
SELECT f.id, f.name,f.surname, m.name
FROM Family AS f
INNER JOIN Manager AS m
UPDATE
如果 Family 与 Manager 具有多对一关系,您可以直接加载 manager 的属性,而无需使用 INNER JOIN :
@ManyToOne
@JoinColumn(name="managerId")
private Manager manager;
SELECT f.id, f.name,f.surname, f.manager.name
FROM Family AS f