簡體   English   中英

加入休眠所需的路徑

[英]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之間) PersonPhisicalPerson 具有這種關聯,您不需要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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM