Spring Boot2.X中findOne的使用詳解
Spring Boot2.X中findOne的用法
SpringBoot在1.5.X版本中,傳入id即可查詢對象
xxxRepository.findOne(id);
但在2.X中,findOne改為瞭
<S extends T> Optional<S> findOne(Example<S> var1);
getOne方法繼續保留瞭,但是如果getOne(id)查詢到的即使id不存在,也會返回該對象的引用,判斷null無效。
後來找到瞭這種寫法可以實現
findOne. xxxRepository.findById(id).orElse(null)
JpaRepository.findOne()在springboot1.x和2.x中的不同的用法
已有開發環境如下
- Windows平臺
- jdk1.8、maven已配置
- 開發工具:Intellij IDEA
在使用springboot 1.5.6.RELEASE時
JpaRepository支持findOne(ID)方法
T findOne(ID id); <S extends T> Optional<S> findOne(Example<S> example);
2.x版本已無法使用 T findOne(ID id)
下面是解決辦法
@Override public AyUser selectAyUserById(Integer id) { AyUser ayUser = new AyUser(); ayUser.setId(id); Example<AyUser> example = Example.of(ayUser); Optional<AyUser> optional = ayUserRepository.findOne(example); if (optional.isPresent()){ ayUser=optional.get(); return ayUser; }else{ return null; } }
記錄一下,方便查詢!
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 繼承JpaRepository後,找不到findOne()方法的解決
- JPA findById方法和getOne方法的區別說明
- SpringBoot開發項目,引入JPA找不到findOne方法的解決
- 一文教你搞定Java Optional類判空操作
- Spring Boot簡介與快速搭建詳細步驟