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