条件付きの日食リンクに参加する方法がわかりません。これは私の実体です:
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;
}
私はこれをします:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery cq = cb.createQuery();
Root<A> a = cq.from(A.class);
Join<A, B> j = a.join("aid",JoinType.INNER);
cq.distinct(true);
//and now what?
cq.where(cb.equal(a.get("id"), "aid"));
Object r = em.createQuery(cq).getResultList();
では、join句をCriteriaQueryにバインドするにはどうすればよいですか?