繁体   English   中英

使用Spring Data JPA扩展CrudRepository并仍为自定义方法创建自己的实现

[英]Extending CrudRepository and still creating own implementation for custom methods with Spring Data JPA

我有一个库接口,该接口扩展了CrudRepository以自动为我提供所有基本的Crud库功能。

public interface CustomerRepository extends CrudRepository<Customer, Integer> {
}

我还能添加自定义存储库功能并实现此接口吗?

如果您使用注释@QueryJpaRepository<User, Long>扩展,也可以直接在界面中编写自己的查询。

public interface UserRepository extends JpaRepository<User,Long> {

    @Query("select u from User u where u.emailAddress = ?1")
    User findByEmailAddress(String emailAddress);
}

Spring doc: 查询注释

是肯定的。

官方文档中有以下部分: https : //docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations

这个想法是为您的自定义代码提供一个接口,如下所示:

interface CustomizedUserRepository {
  void someCustomMethod(User user);
}

然后,您需要一个以Impl结尾的实现:

class CustomizedUserRepositoryImpl implements CustomizedUserRepository {

  public void someCustomMethod(User user) {
    // Your custom implementation
  }
}

最后是从自定义存储库扩展来的Spring数据存储库:

interface UserRepository extends CrudRepository<User, Long>, CustomizedUserRepository {

  // Declare query methods here
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM