我有一些麻煩搞清楚如何從一個SQL查詢中使用的MyBatis返回一個日期時間:返回喬達日期時間外的類
我界面的相關部分:
DateTime getMinActual(@Param("IDs") List<Integer> IDs);
相關我的XML映射的一部分:
<resultMap id="dtt" type="org.joda.time.DateTime">
<result column="dt" property="time" javaType="org.joda.time.DateTime" jdbcType="TIMESTAMP" typeHandler="org.joda.time.mybatis.handlers.DateTimeTypeHandler" />
</resultMap>
<select id="getMinActual" resultMap="dtt">
select min(cast(case when [quarter]=1 then '1/' when [quarter]=2 then '4/' when [quarter]=3 then '7/' else '10/' end + '1/' + cast([year] as varchar) as datetime)) as dt
from
Ops where id in
<foreach item="IDs" index="index" collection="IDs"
open="(" separator="," close=")">
#{IDs}
</foreach>
</select>
我的問題似乎是與財產=「時間」 becaue我得到這個錯誤:
org.apache.ibatis.reflection.ReflectionException: There is no setter for property named 'time' in 'class org.joda.time.DateTime'
我已經嘗試了所有不同的屬性名稱,如DateTime,datetime,dateTime,org.joda.time.DateTime等...所有具有相同錯誤。
任何想法?如指出JodaTime
更新是不變的,但後來這應該工作:
<resultMap id="dtt" type="org.joda.time.DateTime">
<constructor>
<idArg column="dt" javaType="org.joda.time.DateTime" typeHandler="org.joda.time.mybatis.handlers.DateTimeTypeHandler" />
</constructor>
</resultMap>
喬達類是不可變的,他們沒有制定者。 – MirMasej
公平......但我的編輯應該工作,而不是。 – mrkb80
你有沒有考慮編寫自己的類型處理程序? –