发布2.0.0的Spring Data JPA取代了findOne,并且在CrudRepository中存在了findById和existsById的方法。
我们有一个不幸的情况,我们的实体PK属性被称为" oid",并且通常还有一个名为" id"的额外自然id字段。更糟糕的是Strings。
这意味着我们现有的findById和existsById Repository方法会冲突或无意中覆盖CrudRepository中的方法。
findById我们可以重命名为queryById,而existsById我们可以重命名为existsLocalById,但两者都是变通方法,我怀疑人们会无意中使用错误的方法引入错误。
是否还有其他选项可以使设计更清晰?
答案 0 :(得分:1)
因此,稍微深入了解变更背后的JIRA会发现以下内容:
如果您使用@Query注释方法,它应该可以工作 表示您希望此事物明确地成为查询方法
初步测试似乎表明这可以按预期工作,例如在MyEntityRepository ..
@Query
Optional<MyEntity> findById(String id);
@Query
boolean existsById(String id);
我们仍然需要注意使用正确的方法,因为它可能导致我怀疑的一些难以确定的错误。