Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Spring Crudepository查询布尔属性?_Java_Spring_Spring Data_Spring Data Jpa - Fatal编程技术网

Java 如何使用Spring Crudepository查询布尔属性?

Java 如何使用Spring Crudepository查询布尔属性?,java,spring,spring-data,spring-data-jpa,Java,Spring,Spring Data,Spring Data Jpa,我正在使用Springcrudepository进行数据库查询。如何为布尔属性创建方法签名(不是自己编写SQL select语句) 以下操作不起作用: class MyEntity { private boolean active; } interface MyEntityRepository implements CrudRepository<MyEntity, Long> { List<MyEntity> findActive(); //or

我正在使用Spring
crudepository
进行数据库查询。如何为布尔属性创建方法签名(不是自己编写SQL select语句)

以下操作不起作用:

class MyEntity {
       private boolean active;
}


interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
   List<MyEntity> findActive(); //or also: findNotActive();
}
类MyEntity{
私有布尔活动;
}
接口MyEntityRepository实现CrudRepository{
列出findActive();//或同时列出:findNotActive();
}
我会:

interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
   List<MyEntity> findByActive(Boolean active);
}
接口MyEntityRepository实现了CrudRepository{
列表findByActive(布尔激活);
}
那么服务层将是

public class MyEntityServiceImpl implements MyEntityService{


   public List<MyEntity> findActive() {
      return myEntityRepository.findByActive(true);
   }
}
公共类MyEntityServiceImpl实现MyEntityService{
公共列表findActive(){
返回myEntityRepository.findByActive(true);
}
}
更新

正如@OliverGierke所指出的,您可以通过以下方式进一步简化存储库:

interface MyEntityRepository implements CrudRepository<MyEntity, Long> {
   List<MyEntity> findByActiveTrue(); //you could also use findByActiveFalse
}
接口MyEntityRepository实现了CrudRepository{
列出findByActiveTrue();//您也可以使用findbyactiveflse
}
对于所有受支持的关键字,您应该看到该部分

查询创建


当然,这可能比直接将结果绑定到布尔值要好得多。@membersound可能是的!回答得很好,如果您不想为每个调用提供参数,您可能需要添加直接使用
findByActiveTrue()
的选项。谢谢@Olivergierke的建议!这是一个很好的建议!我一到电脑就会更新答案