Mybatis pre 3.5.0
Создать пользовательский ObjectFactory как это:
class OptionalAwareObjectFactory extends DefaultObjectFactory {
public Object create(Class type, List<Class> constructorArgTypes, List<Object> constructorArgs) {
if (Optional.class.isAssignableFrom(type)) {
return Optional.fromNullable(Iterables.getOnlyElement(constructorArgs));
} else {
return super.create(type, constructorArgTypes, constructorArgs);
}
}
}
И настроить его для использования в mybatis.xml
:
<objectFactory type="my.company.project.OptionalAwareObjectFactory"/>
Mybatis 3.5.0 +
Поскольку 3.5.0 Optional
поддерживается изначально, как указано fankai .