我目前有以下围绕存储过程的命名查询:-
<hibernate-mapping>
<sql-query name="mySp">
<return-scalar column="name_first" type="string" />
<return-scalar column="name_last" type="string" />
{ call some_sp :param }
</sql-query>
</hibernate-mapping>
列name_first
和name_last
是存储过程返回的确切列名。我创建了一个包含相同列名的 bean,以便可以将查询结果映射到该 bean。
public class MyBean {
private String name_first;
private String name_last;
...
}
调用命名查询并将结果映射到 bean 的 Hibernate 代码:-
MyBean myBean = (MyBean) sessionFactory.getCurrentSession()
.getNamedQuery("mySp")
.setParameter("param", param)
.setResultTransformer(Transformers.aliasToBean(MyBean.class))
.uniqueResult();
所有这些都可以正常工作,但是我不想依赖存储过程中的列名,而是想在 中使用我自己的列名MyBean
,例如:-
public class MyBean {
private String firstName; // instead of name_first
private String lastName; // instead of name_last
...
}
如何在上面的命名查询中将我的列名映射到存储过程的列?
谢谢。
更新- 我在下面添加了我的最终解决方案。