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