Hibernate の取得では空のリストが返されますが、データが入力されたリストが期待されます。2 つのオブジェクトが関係し、注釈によってマッピングが行われます。
@Entity
@Table(name = "parent")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
class Parent {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
}
@Entity
@Table(name = "child")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
class Child {
@ManyToOne
@JoinColumn(name = "parentId")
@OrderBy(value="id")
private Parent parent;
}
実行されたクエリ:
String queryString = "select c from Child c where c.parent.id = ?1";
Query q = getEntityManager().createQuery(queryString);
q.setParameter("1", parentId);
return q.getResultList();
Hibernate がそのコード セットを実行すると、サイズ = 0 のリストが返されます。SQL ロギングをオンにして、MAMP のログで提供されるクエリを実行すると、期待される結果が返されます。何かアイデアはありますか?