2013-02-05 35 views
2

我在Hibernate中有一個映射類,它包含一個命名的sql查詢,該查詢計算某些搜索參數的整數的最小值。實際的查詢非常複雜(所以我不能將它作爲Criteria或者Hibernate版本中的HQL)。Hibernate-NamedSqlQuery UserType作爲返回類型

數據庫中的返回類型是一個整數,但我有一個Usertype將該整數映射到日期(在我的情況下,db-schema修改也不可行)。

問題是:如何爲通過Custom-UserType解析的命名查詢指定返回類型。

我嘗試了以下。我的用戶類型是

<hibernate-mapping> 
    <typedef class="com.package.MyUserType" name="MyUserType"/> 
    <class>...</class> 
    <sql-query name="queryName"> 
     <return-scalar column="alpha" type="MyUserType"/> 
     select min(myColumn) as alpha from Table01 where attribute=:param 
    </sql-query> 
</hibernate-mapping> 

但在執行一個名爲查詢結果

org.hibernate.MappingException: could not determine type null 

MyUserType是我的類映射裏工作的罰款。

編輯:

我剛剛發現,如果我用com.package.MyUserType類型,這是工作的罰款。所以這個問題似乎是我的typedef在我的sql查詢中無法正常工作。在我的課上它工作正常。 (注意上面的Hibernate映射typedef的線)

Hibernate的版本我必須使用:3.2.7.ga

回答

3

在我的編輯說:

<return-scalar column="alpha" type="com.package.MyUserType"/> 

工作精細。由於某種原因,typedef定義不起作用。我沒有找到像我的休眠版本的任何錯誤報告。