Как мы изменяем преобразователь HQL при загрузке определенного родителя или другого отображенного свойства объекта?

Это - важное дополнение особенно для решения проблем производительности, в то время как способность записать эффективную динамическую 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 и я хочу получить доступ к одному из полей этого родителя только?

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();

Так какие-либо идеи?

7
задан Yevhen Kuzmovych 14 November 2016 в 04:49
поделиться