2016-09-28 55 views
4

我想使用Spring JPA的示例来执行搜索。使用下面的代码,大部分符合要求。如何使用弹簧数据JPA示例匹配器附加条件

public Page<Shop> findShops(Shop condition, Pageable pageable) { 
     ExampleMatcher matcher = ExampleMatcher.matching().withStringMatcher(StringMatcher.CONTAINING).withIgnoreCase(); 
     return shopDao.findAll(Example.of(condition, matcher), pageable); 
    } 

另外,我只需要SHOP状态不等于DELETED。 类似的,.withMatcher("status", notEqual()) 或者也许.withMatcher("status", contains())的一个列表。

我不知道是否和如何实例匹配器可以做这样的事情。 有人能帮助我吗?

回答

0

对于你不需要QBE的一个WHERE条款。从方法查询应该足够:

Page<Shop> findByStatusNot(String status, Pageable page); 

http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation

+0

谢谢你的答复。我知道QBE可以做所有事情,看起来像ExampleMatcher在这种情况下更加用户友好,因为我想搜索与示例(条件)相匹配但具有一些附加条件的SHOP。我不知道QBE和Example是否可以一起工作。无论如何有什么想法? –

+0

谢谢你的回复。这不是一个单一的条件。条件SHOP中的所有值都将被使用,此外,还需要状态为“不等于”。 –