2016-02-29 22 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); 
相关问题