有时,我们会需要用到自己定义的一些查询方法,可以按照下面几步进行。
1. 定义一个包含该方法的接口
Interface UserRepositoryCustom {
public void someCustomMethod(User user);
}
2. 定义实现
class UserRepositoryImpl implements UserRepositoryCustom {
public void someCustomMethod(User user){
//Your custom implementation
}
}
3. 定义你要用的repository
public interface UserRepository extends CrudRepository<User,Long>, UserRepositoryCustom {
//Declare query methods here.
}
4. 有两种方式可以对repository进行配置
4.1 通过统一的后缀名(限制是自己的implementation必须进行annotation配置,而且仅用于autowired)
<repositories base-package="com.acme.repository"/>//默认后缀为Impl
<repositories base-package="com.acme.repository" repository-impl-postfix="FooBar"/>
如果没有配置后缀,默认会找UserRepositoryImpl这个类。
4.2 自己定义bean
<repositories base-package="com.acme.repository"/>
<beans:bean id="userRepositoryImpl" class="...">
<!--further configuration-->
</beans:bean>
上面这种方法只能针对单一的repository,如果想所有的repository都包含这个方法,请看下一篇。