mybatis 中的 ZonedDateTime 属性 映射用于插入到 MS-SQL

ZonedDateTime in mybatis property map for insert to MS-SQL

我有一个 class(称之为 class A),其中包含一个子 class(称之为 class B)属性。

所以

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

我使用 Joda Time 和自定义类型处理程序回答了这个问题。

看这里:http://noobjuggler.blogspot.com/2012/01/mybatis-spring-and-joda-datetime-solved.html