如何在 eclipselink 中进行简单的连接查询?我想接收 ArrayList;例如,我有两个实体:
public class A implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@Column(name = "value")
private String value;
@OneToMany(mappedBy = "aid")
private Collection<B> bCollection;
}
public class B implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Long id;
@JoinColumn(name = "a_id", referencedColumnName = "id")
@ManyToOne
private A aid;
}
我想执行这样的查询:
Select * From A a Join B b ON a.id = b.a_id Where a.value = '1';
我这样做:
EntityManager em = createEntityManager();
Query q = em.createQuery("Select a From A a Where a.value = 1");
q.setHint("eclipselink.join-fetch", "a.bCollection");
Object result = q.getResultList();
并且我收到 A 对象,该对象具有指向 B 对象(bCollection)的链接,而 B 对象(bCollection)具有 A 对象(aid)的链接,因此无限期。正常吗?