Java Eclipse链接简单连接

Java Eclipse链接简单连接,java,join,eclipselink,Java,Join,Eclipselink,如何在eclipselink中进行简单的连接查询?我不想收到ArrayList; 例如,我有两个实体: public class A implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Long id; @Column(name = "value") privat

如何在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; 
}

我想执行如下查询:

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();

我收到一个对象,它有一个到B对象的链接(B集合),B对象有一个对象上的链接(aid),等等。正常吗?

正常。在
双向映射
中,即父对象指子对象,子对象指父对象,它是正常的。但是如果你不无限期地访问循环图,你就很好了

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();