eclipselink で単純な結合クエリを作成するにはどうすればよいですか? ArrayList を受け取りたい; たとえば、次の 2 つのエンティティがあります。
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)へのリンクを持つAオブジェクトを無期限に受け取ります。それは正常ですか?