java-使用谓词查询数据并使用Spring Data JPA分页
作者:互联网
我曾经在.net世界中经历过一段时间使用Java的不幸经历.放任不管,我只是在寻求实现一个可以处理谓词使用并且必须具有分页功能的存储库.我找不到找到此方法的好方法.
// IContactRepository.java
public interface IContactRepository extends Repository<Contact,Long> {
}
// Application.java
contactRepo.findAll(predicate, new PageRequest(0,10));
我希望能够找到包含搜索词的联系人姓名或包含搜索词的联系人电话号码的联系人,然后获得前10个匹配项.
在.net世界中,如果我不使用orm,我将使用sql server出色的TSQL来获取所需的内容,但在这里使用Oracle.否则,我将使用一些ORM并将lambda作为谓词传递给查询函数.
解决方法:
在我的配置中,我还使用了JPA和spring. (对于静态谓词.如果您想动态添加谓词(搜索词),请告诉我.)
// IContactRepository.java
public interface IContactRepository extends CrudRepository<Contact,Long>, PagingAndSortingRepository<Contact, Long> {
List<Contact> findByContactNameLikeAndContactPhoneLike(String name, String phone, Pageable pageable)
}
我用CrudRepo尝试了Pageable,它工作正常.
对于lambda,您是对的:)
在我的配置中,您的实现如下所示:
IContactRepository contactRepo = context.getBean(IContactRepository.class);
List<Contacts> results = contactRepo.findByContactNameLikeAndContactPhoneLike("%CA%","%090%" , new PageRequest(1, 20));
http://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html
请看1.2.2定义查询方法下的查询创建
标签:oracle,spring-data,jpa,spring,java 来源: https://codeday.me/bug/20191121/2052984.html