前言
本章讲解SpringData JPA中QueryByExampleExecutor接口的使用
方法
1.概念
我们知道,之前一直在讲解JpaRepository接口的一系列父接口,那么有一个父接口也很重要,那就是QueryByExampleExecutor接口
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T>
观察该接口下的方法:
由此可见,这又是一个丰富我们进行查询工作的一个好接口!
2.QueryByExampleExecutor接口方法
<S extends T> Optional<S> findOne(Example<S> example);
该方法传入了一个Example参数,我们首先来看一下这个接口:
两种方式的区别是,第一个of不传匹配规则,采用默认的匹配规则。第二个of传递匹配规则。
那么既然讲到这里了,就不得不聊一下匹配规则了。
@Override
public Users getUserById(Integer id) {
Users users = new Users();
users.setId(id);
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("id", GenericPropertyMatchers.exact());
Example<Users> example = Example.of(users,matcher);
return userDao.findOne(example).get();
}
匹配规则:
这里只是简单的讲解了findOne方法的使用,其余的方法大家自行参阅!