Java 如何使用Spring Crudepository查询布尔属性?
我正在使用SpringJava 如何使用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
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的建议!这是一个很好的建议!我一到电脑就会更新答案