【问题标题】:spring boot query , what's wrong with this?春季启动查询,这有什么问题?
【发布时间】:2020-08-09 18:16:29
【问题描述】:

我正在尝试根据多个条件从 db 获取数据,但出现异常错误: "字符串从 69 开始引用范围,但从不结束"

@Query("SELECT u FROM User u WHERE (u.name = ?1 and u.status= ?2)")
List<User> findUsers(String name, String status);

//at controller

@GetMapping("active")
    public List<User> findUsers()
    {
        String name= "Ali";
        String status = "ACT";
        return repository.findUsers(name, status);
    }

【问题讨论】:

  • 在你使用的地方添加你的存储库方法
  • 查看这个baeldung.com/spring-data-jpa-query 对于你的情况,我会使用这样的命名查询 findAllByNameAndStatus(String name, String status)

标签: java spring-boot spring-data-jpa


【解决方案1】:

您的参数未正确映射。 使用@Param映射参数

@Query("SELECT u FROM User u WHERE (u.name = :name and u.status= :status)")
List<User> findUsers(@Param("name") String name, @Param("status") String status);

或者

在方法声明中使用方法参数的顺序

@Query("SELECT u FROM User u WHERE (u.name = ?1 and u.status= ?2)")
List<User> findUsers(String name, String status);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 2021-12-30
    • 1970-01-01
    • 2014-01-09
    • 2020-07-02
    • 2018-01-23
    • 2021-08-10
    • 1970-01-01
    相关资源
    最近更新 更多