Java 8 LocalDate-kortlægning med mybatis
Se her:https://github.com/mybatis/typehandlers-jsr310
Hvis du bruger mybatis version 3.4 eller nyere, kan du blot tilføje denne artefakt på din klassesti, og MyBatis vil automatisk registrere de angivne typebehandlere.
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.0</version>
</dependency>
Hvis du bruger en ældre version, skal du registrere typebehandlerne manuelt.
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.InstantTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.LocalTimeTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.OffsetDateTimeTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.OffsetTimeTypeHandler" />
<typeHandler handler="org.apache.ibatis.type.ZonedDateTimeTypeHandler" />
</typeHandlers>
UPD:
Typehandlere for "JSR 310:Date and Time API" er blevet flettet ind i mybatis core siden 3.4.5.(Se #974)
Til mit nuværende projekt har jeg lavet mappers til Java 8 time API klasser.
Du kan se min implementering her jneat/mybatis-types
Se venligst her:http://mybatis.github.io/mybatis-3/configuration.html#typeHandlers
For at bruge LocalDate og Timestamp skal du skrive en brugerdefineret typeHandler, sådan her:
// ExampleTypeHandler.java
@MappedTypes(LocalDate.class)
public class LocalDateTypeHandler extends BaseTypeHandler<LocalDate> {
//implement all methods
}
konfig din config.xml sådan her:
<!-- mybatis-config.xml -->
<typeHandlers>
<typeHandler handler="your.package.LocalDateTypeHandler"/>
</typeHandlers>
Det burde hjælpe.