【发布时间】:2010-05-15 23:16:49
【问题描述】:
我有一个 java 对象 Person 具有 3 个属性 firstname、lastname 和 username。
我有一个 Oracle 存储过程,它返回一个包含 3 列的结果集。 一切都很好。
现在我有另一个只返回名字和姓氏而不是用户名的存储过程。
我收到以下错误:
无法从结果集用户名中读取列值
Hibernate 尝试从结果集中获取用户名属性。 如果我删除属性用户名,那么它可以工作。
我的配置:
<sql-query name="normalise" callable="true" >
<return alias="val" class="com.nbfg.sipc.model.Person">
<return-property name="firstname" column="FIRST_NAME"/>
<return-property name="lastname" column="LASTNAME_NAME"/>
</return>
{call SCHSIPC.PKG_SIPC_APP.PRC_SIPC_NORMALISE_RS(?, ?, ?, ?, ?) }
</sql-query>
我的 Pojo(无注释)
@Entity
public class Person {
private String firstname;
private String lastname;
private String username;
...
来电:
private Value call(String app, String cat, String col, String valeure, String query) {
try {
Query q = getSessionFactory().openStatelessSession().getNamedQuery(query);
q.setString(0, app).setString(1, cat).setString(2, col).setString(3, valeure);
return (Person) q.list().get(0);
} catch (org.hibernate.QueryTimeoutException ex) {
throw new IllegalArgumentException(ex.getCause().getMessage());
}
}
如果我从我的 Pojo 中删除属性 username,一切正常。我可以重复使用同一个 PoJo 吗?
谢谢
【问题讨论】:
标签: java hibernate jakarta-ee