相关疑难解决方法(0)

如何在CriteriaQuery中引用查询超类的子类特定字段?

我正在尝试使用JPA Criteria API实现以下类似的功能:

SELECT b FROM Box b JOIN SpecialItem s WHERE s.specialAttr = :specialAttr
Run Code Online (Sandbox Code Playgroud)

对象是

@Entity
public class Box implements Serializable {
  ...
  @ManyToOne
  @JoinColumn( name = "item_id" )
  Item item;
  ...
}
Run Code Online (Sandbox Code Playgroud)

项目

@Entity
@Inheritance( strategy = InheritanceType.JOINED )
public class Item implements Serializable {
  @Id
  private String id;
  ...
}
Run Code Online (Sandbox Code Playgroud)

SpecialItem

@Entity
public class SpecialItem extends Item {
  private String specialAttr;
  ...
}
Run Code Online (Sandbox Code Playgroud)

我的尝试

EntityManager em = getEntityManager();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery( …
Run Code Online (Sandbox Code Playgroud)

jpa criteria-api

7
推荐指数
2
解决办法
6024
查看次数

标签 统计

criteria-api ×1

jpa ×1