我有一个父实体和两个孩子
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Point {
@Id
@Column(name = "id")
private long id;
private int x;
private int y;
}
@Entity
@Table(name = "point_a")
public class PointA extends Point {
}
@Entity
@Table(name = "point_b")
public class PointB extends Point {
}
我还有一个包含点列表的实体。
@Entity
@Table(name = "data")
public class Data {
private long id;
@OneToMany
private List<Point> points;
}
此示例已简化,因此没有任何东西会干扰问题的本质。
如何使用EntityManager编写查询以检索数据,以便在列表中包含PointA类型的点?
entityManager.createQuery("select d from Data d join d.points...")
我认为这是类似的东西,但是我不明白如何告诉休眠状态使用'point_a'表中的数据。