[英]How to return an Optional from MyBatis query
有什么方法可以让MyBatis返回Optional<MyClass>
实例而不是简单的MyClass
实例吗?
创建自定义对象工厂,如下所示:
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"/>
由于3.5.0 Optional
如原生支持fankai指出。
自3.5.0起,Mybatis现在正式支持Optional返回类型,请参阅http://blog.mybatis.org/2019/01/mybatis-350-released.html
不确定Roman的答案如何工作……如方法签名所示,它可能在Mybatis的早期版本中有效,但显然不适用于最新版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.