java - Spring JPA数据,具有相同功能的多种方法

标签 java spring-data-jpa

我正在使用 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.如何解决?

最佳答案

正如评论所建议的那样,正确命名方法不会“破坏 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);
}

关于java - Spring JPA数据,具有相同功能的多种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64209863/

相关文章:

java - 将服务的 getBean 替换为 @Autowired

java - Spring Data REST + JPA 从 OneToMany 集合中删除 [不是所有者端]

java - 如何修复java Rest API?不断收到 404 错误

java - 带有java配置的spring security AuthenticationFailureHandler

java - 配置单元 Metastore 和连接拒绝进入配置单元外壳的错误

java - 将 GUI 文本存储为 ResourceBundle(无本地化)?

java - Mockito 无法创建 @Autowired Spring-Data Repository 的 Spy

java - spring data jpa 存储库是否可以使用具有相同简单名称的多个实体?

java - Eclipse/javac 不同意编译签名与默认方法冲突;谁是对的?

java - Spring Boot Data JPA 查询不适用于 LocalDateTime.MAX