2

詳細は説明しませんが、それは構成に関するものであり、休止状態のバージョンに関連するものではないとほぼ確信していますが、さらに何かが必要かどうかを尋ねるだけです =)

問題は、次のように 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 はありません。

私は頭がおかしくなっています、それは構成に関する何かでなければならないと思います。怠惰なフェッチまたはそれに類するもの。

経験豊富な開発者がアイデアを持っていますか? ありがとうございました!

4

1 に答える 1