我正在尝试使用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)