一部の検索パラメーターの整数の最小値を計算する名前付きsql-queryを含むマップされたクラスがHibernateにあります。実際のクエリは非常に複雑です(したがって、HibernateバージョンではCriteriaとしてもHQLとしても記述できません)。
データベースの戻り値の型は整数ですが、その整数を日付にマップするUsertypeがあります(私の場合、db-schemaの変更もできません)。
問題は、Custom-UserTypeを介して解決される名前付きクエリの戻りタイプを指定する方法です。
以下を試してみました。私の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-queryで正しく機能していないことのようです。私のクラスでは、それはうまく機能しています。(上記のhibernate-mappingのtypedef-lineに注意してください)
Hibernate-使用する必要があるバージョン:3.2.7.ga