私はHibernate 5 & Springデータを使用しています。私はこのようにそれを呼び出しています単純なHibernate/JPAクエリを返すプロキシオブジェクト
@Query("from Party where id in :partyIDs")
List<PartyTO> loadByIDs(@Param("partyIDs") List<Long> partyIDs);
:
partyList = partyDao.loadByIDs(userPartyIDsList));
が、私はnull
に設定し、すべてのフィールドで(Hibernateのプロキシオブジェクトのリストを取得しています私のPartyDao
インサイド は、私は次のメソッドを持っていますorg.hibernate.proxy.pojo.javassist.JavassistLazyInitializer
のhandler
フィールド)。
これは意味をなさない!なぜ、Hibernateはオブジェクトをロードしないのですか?クエリルートから私は指定していますか?
私はそれを変更する:私はこのオブジェクトにフェッチしたいということ、それがより明確にしようとする
@Query("select party from Party party where party.id in :partyIDs")
List<PartyTO> loadByIDs(@Param("partyIDs") List<Long> partyIDs);
、それはまだプロキシオブジェクトを返します。私は行方不明のものがありますか?私はそれが自分自身をフェッチする方法を知らない。
EDIT: プロキシオブジェクトは、実際に設定されているすべての属性を持っているtarget
と呼ばれる属性を持っています。なぜ彼らはオブジェクト自体に配置されていませんか?
はなく、名前でパーティーをソートされComparator
内部NullPointerException
:
...
return o1.name.compareTo(o2.name);
あなたはPartyを選択しますが、PartyTOのリストを期待していますか? –
データベーステーブルとクラスの名前は、マッピングファイルで次のように設定されています。 –
あなたは 'PartyTO p from p.id in:partyIDs'で試しましたか?マッピングファイルを表示できますか? – dcalap