【发布时间】:2011-06-19 07:56:51
【问题描述】:
我目前有以下围绕存储过程的命名查询:-
<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
...
}
如何将我的列名映射到上述命名查询中存储过程的列?
谢谢。
更新 - 我在下面添加了我的最终解决方案。
【问题讨论】:
标签: java hibernate stored-procedures named-query