2017-10-19 363 views
0

Spring Data 2.0.0版JPA用CrudRepository中的findById和existsById替換findOne和exists方法。Spring Data JPA 2.0.0:如何最好地解決自定義findById方法和CrudRepository中新版本之間的衝突?

我們有不幸的情況,我們的實體PK屬性被稱爲「oid」,並且通常還有一個名爲「id」的附加自然id字段。更糟的是,這兩個都是Strings。

這意味着我們現有的findById和existsById存儲庫方法會衝突或無意中覆蓋CrudRepository中的那些方法。

findById我們可以重新命名爲queryById,而existsById我們可以重新命名爲existsLocalById,但兩者都是解決方法,我懷疑錯誤會被人們無意中使用錯誤的方法引入。

是否有任何其他選項可用,這將導致更清潔的設計?

回答

0

那麼一點點深入挖掘變化背後的JIRA揭示了以下內容:

,如果你與@Query標註方法爲 它應該工作表明您希望這件事情是一個查詢方法明確

初始測試似乎表明,這可以按預期工作,例如在MyEntityRepository ..

@Query 
Optional<MyEntity> findById(String id); 

@Query 
boolean existsById(String id); 

我們還是要照顧的是使用正確的方法,因爲它可能會導致一些難以判斷的錯誤,我懷疑。

相關問題