[英]Path expected for join hibernate
休眠HQL
查詢和簡單的INNER JOIN有問題
String hql = "SELECT NEW es.criteria.crc.model.queryObjects.NameQuery(pf.name) FROM Person as p INNER JOIN PhisicalPerson as pf WHERE pf.idPersona = p.idPersona";
return personService.query(hql);
我的Java文件具有以下代碼:
public class NameQuery{
private String name;
public NameQuery(String name) {
super();
this.name= name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name= name;
}
}
我在控制台中收到以下錯誤:
Caused By: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join!
你需要有一個協會( @OneToMany
, @OneToOne
之間) Person
與PhisicalPerson
。 具有這種關聯,您不需要where
子句
SELECT NEW es.criteria.crc.model.queryObjects.NameQuery(pf.name)
FROM Person as p INNER JOIN p.pf
在示例中, pf
是與PhisicalPerson
關聯的Person
的屬性。
class Person {
@OneToOne(mappedBy = "person")
private PhisicalPerson pf;
}
class PhisicalPerson {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "fk_person")
private Person person;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.