これは、効率的な動的 HQL クエリを記述しながら、パフォーマンスの問題を解決するために特に重要な追加です。
しかし、特定の親または別のマップされたエンティティ プロパティをロードする場合、HQL トランスフォーマーをどのように変更すればよいでしょうか?
次のコード:
session.createQuery(
"select st.stNumber as stNumber, st.stDate as stDate "
+ " from SomeTable st "
+ " where st.someTableId < 1000")
.setResultTransformer( Transformers.aliasToBean(database.SomeTable.class))
.list();
正常に動作しますが、親のプロパティの一部のみをロードしたい場合はどうすればよいでしょうか?
たとえば、SomeTable
と呼ばれる親がSomedParent
あり、この親のフィールドの 1 つだけにアクセスしたいとしますか?
session.createQuery(
"select st.stNumber as stNumber, st.stDate as stDate, st.someParent.someParentField as someParentField "
+ " from SomeTable st "
+ " where st.someTableId < 1000")
.setResultTransformer( Transformers.aliasToBean(database.SomeTable.class))
.list();
アイデアはありますか?