Hibernate / JPA查询连接子类的可嵌入属性

时间:2017-10-24 03:07:41

标签: java hibernate jpa

我有以下实体:ShoppingCart,扩展User的抽象类User和EndUser。 AddressDetails是一个嵌入到EndUser实体中的嵌入。

我的查询如下所示: org.hibernate.QueryException: could not resolve property: zip of:

当我删除WHERE子句的第二部分,并只留下endUser.name部分时,一切正常(name是endUser实体类的属性,它是User实体类的子类)。 但是,当我尝试整个查询时,我得到:

@Entity
public class ShoppingCart {

   ...

   @ManyToOne(fetch = FetchType.LAZY)
   @JoinTable
   private EndUser endUser;
}

ShoppingCart:

@Entity
public abstract class User {
...
}

用户:

@Entity
public class EndUser extends User {
   ...
   @Column
   private String name;

   @Embeded
   private AddressDetails addressDetails;
   ...
}

终端用户:

@Embeddable
public class AddressDetails {
   ...
   private int zip;
   ...
}

地址详情:

fake_name

1 个答案:

答案 0 :(得分:1)

我实际上发现了这个问题。

当我在ShoppingCart和endUser之间的@ManyToOne reladtionship上将FetchType更改为EAGER时,查询可以正常工作。

所以它应该是:

   @ManyToOne(fetch = FetchType.EAGER)
   @JoinTable
   private EndUser endUser;