/ / Tornando a Joda DateTime fuori da una classe - spring-mvc, jodatime, mybatis, spring-mybatis

Tornando a Joda DateTime fuori da una classe - spring-mvc, jodatime, mybatis, spring-mybatis

Sto avendo qualche problema a capire come restituire un singolo DateTime da una query SQL usando mybatis:

La parte rilevante della mia interfaccia:

DateTime getMinActual(@Param("IDs") List<Integer> IDs);

La parte rilevante del mio xml mapper:

<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>

Il mio problema sembra essere con la proprietà = "time" perché ottengo questo errore:

org.apache.ibatis.reflection.ReflectionException: There is no setter for property named "time" in "class org.joda.time.DateTime"

Ho provato tutti i diversi nomi di proprietà come DateTime, datetime, dateTime, org.joda.time.DateTime, ecc ... il tutto con lo stesso errore.

Qualche idea?

Aggiornamento come indicato JodaTime è immutabile, ma questo dovrebbe funzionare:

<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>

risposte:

0 per risposta № 1

Per quanto ne so, è necessario utilizzare un gestore di tipi come si fa, ma con la proprietà impostata come nell'esempio seguente.

per esempio.

<idArg column="dt" property="dt" javaType="org.joda.time.DateTime" typeHandler="org.joda.time.mybatis.handlers.DateTimeTypeHandler"/>

Ho usato questo progetto github come guida su come usare TypeResolver