【问题标题】:How to pass an array of numbers as a parameter in Jpa Hibernate Query? [closed]如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]
【发布时间】:2021-02-15 19:26:24
【问题描述】:

例子:

Select * from student where roll_no in (1,2,3);

在学生存储库中(Spring Boot):

@Query(value="Select * from student where roll_no in (?)",native =true)
List selectStudents(我在这里给什么?)

或者还有其他方法可以实现吗?

【问题讨论】:

    标签: java mysql spring-boot hibernate jpa


    【解决方案1】:

    你可以只传入一个列表,大概是IntegerLong

    见:Spring CrudRepository findByInventoryIds(List<Long> inventoryIdList) - equivalent to IN clause

    【讨论】:

      【解决方案2】:

      如果你想使用原生查询,你可以像下面那样做

      @Query(value="select * from student where roll_no in (:rollNos)",native =true)
      List<Object[]> selectStudents(@Param("rollNos") List<Integer> rollNos);
      

      但我建议您使用如下所示的 JPA 命名查询来执行此操作,这很容易进一步处理,因为它以实体格式为您提供结果。

      Student findByRollNo(List<Integer> rollNos);
      

      【讨论】:

        猜你喜欢
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 2021-10-06
        • 1970-01-01
        相关资源
        最近更新 更多