我有一个库接口,该接口扩展了CrudRepository以自动为我提供所有基本的Crud库功能。
public interface CustomerRepository extends CrudRepository<Customer, Integer> {
}
我还能添加自定义存储库功能并实现此界面吗?
答案 0 :(得分:4)
如果您使用注释JpaRepository<User, Long>
从@Query
扩展,也可以直接在界面中编写自己的查询
public interface UserRepository extends JpaRepository<User,Long> {
@Query("select u from User u where u.emailAddress = ?1")
User findByEmailAddress(String emailAddress);
}
春季文档:Query annotation
答案 1 :(得分:3)
可以肯定。
官方文档中有以下部分: 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
}