我有一個java對象Person
與3個屬性firstname
,lastname
和username
。基本休眠問題使用和SQL查詢
我有一個Oracle存儲過程返回一個結果集與3列。 所有的工作都很好。
現在我有另一個存儲過程,將只返回firstname和lastname而不是用戶名。
我得到以下錯誤:
Could not read column value from result set username
Hibernate試圖獲取從ResultSet中的用戶名屬性。 如果我刪除屬性的用戶名,那麼它的作品。
我的配置:
<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嗎?
謝謝
如果你正在使用一個簡單的存儲過程,只是做了一個簡單的選擇並返回表格模式(就像使用.NET一樣),我完全可以不用存儲過程。讓hibernate處理關聯,並生成適當的SQL。 – RMorrisey 2010-05-16 19:24:40