使用多个参数查询布尔值

时间:2015-02-20 18:44:17

标签: spring spring-data-jpa

正如文档中所述(http://docs.spring.io/spring-data/jpa/docs/current/reference/html/),i'我试图写这样的查询:

public Page<AnyObject> findByActiveTrueAndUser(Boolean ativo, User user, Pageable pageable);

但我收到以下错误:可能出现什么问题?

参数值[true]与预期类型[.com.User]

不匹配

2 个答案:

答案 0 :(得分:1)

findByActiveTrueAndUser spring数据只需要一个参数(在这种情况下为User),因为你已经告诉spring已经给你一些活跃的(findByActiveTrue部分)。

因此,当您将布尔值作为第一个参数传递时,它不能与预期的User类型的参数匹配。

因此,请将方法签名更改为

public Page<AnyObject> findByActiveAndUser(Boolean active, User user, Pageable pageable);

 public Page<AnyObject> findByActiveTrueAndUser(User user, Pageable pageable);

答案 1 :(得分:1)

您的方法名称

  

findByActiveTrueAndUser(...

指出您的查询应按active = true和用户进行过滤。用户是唯一要过滤的参数,因为方法名称隐含了active = true。所以它应该是

findByActiveTrueAndUser(User user, Pageable pageable);

否则,将方法名称更改为

  

findByActiveAndUser(...

动态过滤active和用户。