簡體   English   中英

如何從MyBatis查詢返回可選參數

[英]How to return an Optional from MyBatis query

有什么方法可以讓MyBatis返回Optional<MyClass>實例而不是簡單的MyClass實例嗎?

Mybatis pre 3.5.0

創建自定義對象工廠,如下所示:

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指出。

自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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM