現在、ストアド プロシージャをラップする次の名前付きクエリがあります。
<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
...
}
上記の名前付きクエリでストアド プロシージャの列に対して列名をマップするにはどうすればよいですか?
ありがとう。
更新- 以下に最終的な解決策を追加しました。