0

属性としてサブクラス (クラス B と呼びます) を含むクラス (クラス A と呼びます) があります。

そう

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

4

1 に答える 1

0

Joda Time とカスタム タイプハンドラーを使用してこれに答えました。

こちらをご覧ください: http://noobjuggler.blogspot.com/2012/01/mybatis-spring-and-joda-datetime-solved.html

于 2015-07-26T14:48:13.860 に答える