SpringBoot2中JPA的findOne()方法異常


在用SpringBoot 2的時候,發現使用Spring Data JPA 的自帶findOne()方法時,不像以前那樣可以通過直接使用:

xxxRepository.findOne(id)

傳入id來獲取一個對象。查看源碼發現findOne方法變成了如下所示:

<S extends T> Optional<S> findOne(Example<S> var1);

原來是自從spring boot 2.0以后,由於用上了Java 8 的Optional,廢除了原來的findOne(Id)。

原來是自從spring boot 2.0以后,由於用上了Java 8 的Optional,廢除了原來的findOne(Id)。Optional 是個容器:它可以保存類型T的值,或者僅僅保存null。Optional提供很多有用的方法,這樣我們就不用顯式進行空值檢測。

findById()方法也使用了Optional,廢除了原來的方法:

Optional<T> findById(ID var1);

解決方法:調用findById方法返回Optional對象,再調用Optional的get()方法返回該對象,即用xxxRepository.findById(id).get()代替原來的findOne(id)方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM