这是一个重要的补充,特别是为了解决性能问题,同时能够编写高效动态的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();
所以有什么想法吗?