7

これは、効率的な動的 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();

アイデアはありますか?

4

1 に答える 1