属性としてサブクラス (クラス 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'.