2017-10-19 362 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); 

我们还是要照顾的是使用正确的方法,因为它可能会导致一些难以判断的错误,我怀疑。

相关问题