java - 如何从 MyBatis 查询返回可选值

标签 java mybatis spring-mybatis

有没有办法让MyBatis返回Optional<MyClass>实例而不是简单的MyClass实例?

最佳答案

Mybatis 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 起, native 支持可选 fankai指出。

关于java - 如何从 MyBatis 查询返回可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50214697/

相关文章:

java - 为什么 List<generic> 在 mybatis 与 java 的情况下不起作用?

java - Java中的蛮力多项式算法

java - 如何使用itext在java中的PDF页脚中添加表格

mybatis - 由 : org. apache.ibatis.ognl.NoSuchPropertyException 引起:

java - SqlServer/MyBatis SqlMapConfig 数据源设置

java - 使用 MyBatis 和 MySql 以编程方式创建表

java - Spring jms - 重命名 DLQ

java - 如何在hibernate中执行内连接3个类

java - Ibatis绑定(bind)异常错误信息

mybatis - 如何为 mybatis-spring-boot 映射 EnumOrdinalTypeHandler?