Spring Boot-将特定查询应用于数据库

时间:2018-08-08 10:40:37

标签: spring-boot spring-data-jpa

我已经开始使用Spring Boot,但我还有一个疑问。

我正在屏幕上显示对数据库的查询的所有字段,但是我只想在下一个查询的基础上显示寄存器:

select * from user where remove = false

我只显示每个类的findAll方法,因为该方法可以正常工作,但是我没有在其中添加子句。

这是我控制器类(UserController.java)的方法:

@GetMapping
public List<User> findAll(){
    return userService.findAll();
}

这是我服务类(UserService.java)的方法:

List<User> findAll();

这是我在服务实现类(UserServiceImpl.java)中的方法:

@Override
public List<User> findAll() {
    return repository.findAll();
}

这是我对存储库类(UserRepository.java)的方法:

public interface UserRepository extends Repository<User, Integer> {

    // @Query("select * from user where remove = false")
    List<User> findAll();

}

我试图在UserRepository类中测试下一个注释:

@Query("select * from user where remove = false")

但目前无法正常工作。

解决它的最好方法是什么?谢谢

3 个答案:

答案 0 :(得分:1)

尝试在查询中添加http.sys

nativeQuery = true

答案 1 :(得分:1)

使用查询dsl代替本地查询:

List<User> findByRemoveFalse();

它的工作原理与本地查询相同。

答案 2 :(得分:0)

您可以使用repository query methods,例如:

(...args: any[]) => void

我认为我的另一个答案也会有用:https://stackoverflow.com/a/51692712/5380322