2013-02-05 24 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定义不起作用。我没有找到像我的休眠版本的任何错误报告。