詳細は説明しませんが、それは構成に関するものであり、休止状態のバージョンに関連するものではないとほぼ確信していますが、さらに何かが必要かどうかを尋ねるだけです =)
問題は、次のように HQL を実行すると何が問題になるかということです。
Query query = em.createQuery("select foo from Foo foo");
List<Foo> foos = query.getResultList();
Hibernate は、id を持つ Foo オブジェクトを取得しますが、データベースで通知されている場合、他のすべての列を null にしますか?
Fooが次のようになっていると想像してください。
@Entity
@Table(name="FOO")
public class Foo implements Serializable {
@Id
@column(name="F_ID")
private long id;
@column(name="F_COD")
private String cod;
//setters and getters
...
}
問題は、後で foo の 1 つの通知された ID を使用してこれを行うと、オブジェクト全体も取得されないということです!:
Foo f = entityManager.find(Foo.class, foo.getId());
entityManager.find() ではなく、entityManager.getReference() のように動作するのはなぜですか?!
しかし、もしそうなら:
Query query = em.createQuery("select foo.id, foo.cod from Foo foo");
List<Foo> foos = query.getResultList();
列の値が失われています。しかし、結果リストにはオブジェクトがあり、Foo はありません。
私は頭がおかしくなっています、それは構成に関する何かでなければならないと思います。怠惰なフェッチまたはそれに類するもの。
経験豊富な開発者がアイデアを持っていますか? ありがとうございました!