Spring JPA数据,具有相同功能的多个方法

bkhjykvo  于 12个月前  发布在  Spring
关注(0)|答案(1)|浏览(210)

我正在使用spring data jpa与数据库交互,但是我遇到了一个问题:我不能用不同的命名实体多次定义相同的方法。
请考虑:

class Repository {
    @EntityGraph(value = UserEo.FULL, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findUserEoByEmail/*Full*/(String email);

    @EntityGraph(value = UserEo.BRIEF, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findUserEoByEmail/*Brief*/(String email);
}

字符串
我想有不同的命名图的单独的方法,但添加额外的信息,以方法的名称打破Spring。如何解决这个问题?

zaqlnxep

zaqlnxep1#

正如评论所建议的那样,正确命名方法不会“破坏Spring”。你可以有:

public interface Repository extends JpaRepository<UserEo, Long> {
    @EntityGraph(value = UserEo.FULL, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findFullByEmail(String email);
    @EntityGraph(value = UserEo.BRIEF, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findBriefByEmail(String email);
}

字符串
或者你想在两个仓库中分解东西,比如:

public interface RepositoryFull extends JpaRepository<UserEo, Long> {
    @EntityGraph(value = UserEo.FULL, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findByEmail(String email);
}


public interface RepositoryBrief extends JpaRepository<UserEo, Long> {
    @EntityGraph(value = UserEo.BRIEF, type = EntityGraph.EntityGraphType.LOAD)
    public Optional<UserEo> findByEmail(String email);
}

相关问题