ZonedDateTime в карте свойств mybatis для вставки в MS-SQL

У меня есть класс (назовем его классом A), который содержит в качестве атрибута подкласс (назовем его классом B).

So

public class Request {
    private User user;
    private ZonedDateTime requestTime;
    //getters,setters
 }
public class User  {
   private Integer userID;
     //getters,setters

Что я пытаюсь сделать, так это вставить запрос или в код (при условии, что myUser и loggerMapper уже созданы):

Request myRequest = new Request(); 
myRequest.setuser(myUser);
ZonedDateTime z = ZonedDateTime.now();
myRequest.setrequestTime(z);
loggerMapper.logRequest(myRequest);

Где у меня есть интерфейс:

public interface loggerMapper {
    Boolean logRequest(Request myRequest);
}

И такой сопоставитель xml:

<insert id="logRequest" parameterType="map">
    insert into  Request(userID,requestTime)
    values (#{userID},#{requestTime})
</insert>

myBatis абсолютно ненавидит ZonedDateTime, он просто блюет

java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'requestTime'.


person mrkb80    schedule 25.07.2015    source источник


Ответы (1)


Я ответил на это, используя Joda Time и собственный обработчик типов.

Посмотрите здесь: http://noobjuggler.blogspot.com/2012/01/mybatis-spring-and-joda-datetime-solved.html

person mrkb80    schedule 26.07.2015