0

findAll()我需要通过遵循不同的 EntityGraphs 注释来为同一方法实现两种不同的实现。通过引用另一个 StackOverflow 帖子,我找到了findAll()一种使用不同 EntityGrpahs 实现相同方法的方法。但是,当我使用该帖子中提到的默认方法时,我没有得到预期的行为。它忽略@EntityGraph注释并按照默认行为返回惰性集合。请提供此问题的修复程序或说明我可以实施以解决此问题的任何其他更好的解决方案。

public interface BspCategoryRepository extends JpaRepository<DbpMetaBspCategory, String> {

    @EntityGraph(attributePaths = {"dbpBspMetaCollection","dbpBspMetaCollection.dbpBspMetaCustomFieldCollection","dbpBspMetaCollection.bspType","dbpBspMetaCollection.bankCode","dbpBspMetaCollection.dbpBspMetaCustomFieldCollection.fieldType"}, type = EntityGraph.EntityGraphType.FETCH)

    default List<DbpMetaBspCategory> findAllCategories(){
      return findAll();
    }


}

请参考Femi回答的帖子中的第二个答案。 参考

4

1 回答 1

0

Spring Data 根本无法知道这个注解,因为该方法不是抽象的。您应该能够像这样声明该方法:

@EntityGraph(attributePaths = {"dbpBspMetaCollection","dbpBspMetaCollection.dbpBspMetaCustomFieldCollection","dbpBspMetaCollection.bspType","dbpBspMetaCollection.bankCode","dbpBspMetaCollection.dbpBspMetaCustomFieldCollection.fieldType"}, type = EntityGraph.EntityGraphType.FETCH)
List<DbpMetaBspCategory> findAllCategories();
于 2021-05-14T12:49:35.233 回答