2016-02-29 56 views
0

我有以下兩個實體類:國家和類型什麼是QueryDSL中的根路徑?你能用一個例子來解釋嗎?

@Entity 
@Table(name = "countries") 
public class Country { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id ; 

    @Column(name = "iso_code") 
    private String isoCode; 

    public Country() { 
    } 

    public Country(String isoCode) { 
     this.isoCode = isoCode; 
    } 

    public Country(int id, String isoCode) { 
     this.id = id; 
     this.isoCode = isoCode; 
    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getIsoCode() { 
     return isoCode; 
    } 

    public void setIsoCode(String isoCode) { 
     this.isoCode = isoCode; 
    } 

     @Override 
    public String toString() { 
     return "Country{" + 
       "id=" + id + 
       ", isoCode='" + isoCode + '\'' + 
       '}'; 
    } 
} 


@Entity 
@Table(name = "types") 
public class Type { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private int id; 

    @Column(name = "type") 
    private String type; 

@ManyToOne 
@JoinColumn(name = "country_id") 
private Country country; 

    @ManyToOne 
    @JoinColumn(name = "group_id") 
    private Group group; 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getType() { 
     return type; 
    } 

    public void setType(String type) { 
     this.type = type; 
    } 

    public Group getGroup() { 
     return group; 
    } 

    public void setGroup(int priority) { 
     this.group = group; 
    } 
} 

我試圖使用組來檢索存儲庫中的類以下內容:

 QType qType = QType.type1; 
     QCountry qCountry = QCountry.country; 
     QGroup qGroup = QGroup.group; 
     QGroup qGroup1 = qType.group; 

     JPAQuery queryGroup = new JPAQuery(em); 

     QueryBase queryBaseGroups = queryGroup.from(qGroup).innerJoin(qGroup1, qGroup).innerJoin(qType.country, qCountry); 

但是,我得到的錯誤 -

java.lang.IllegalArgumentException:未聲明的路徑'type1'。將此路徑作爲源添加到查詢以便能夠引用它。

JPA的新功能。我在這裏做錯了什麼?

回答

0

所以這是通過在查詢中的from函數中添加qType來解決的。

QueryBase queryBaseGroups = queryGroup.from(qGroup, qType).innerJoin(qGroup1, qGroup).innerJoin(qType.country, qCountry); 
相關問題