我需要获取“Manager”表的“name”列。并显示上面给出的“Manager.name”的所有“Family”列。
SELECT Family.id, Family.name,Family.surname, Manager.name[Manager Name]
FROM Family
INNER JOIN Manager
ON Family.managerId=Manager.id;
我可以在Managment studio中执行此SQL查询,但是当我尝试添加到hibernate(DAO)类时,我遇到了这个错误:
请求处理失败;嵌套异常是 org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌: 在第4行第1列附近[SELECT Family.id, Family.name,Family.surname,Manager.name AS ManagerName
答案 0 :(得分:0)
无需使用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
更新
如果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