如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]
Posted
技术标签:
【中文标题】如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]【英文标题】:How to pass an array of numbers as a parameter in Jpa Hibernate Query? [closed] 【发布时间】: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(我在这里给什么?)
或者还有其他方法可以实现吗?
【问题讨论】:
【参考方案1】:你可以只传入一个列表,大概是Integer
或Long
。
见: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);
【讨论】:
以上是关于如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 Hibernate/JPA Generated UPDATE Query 的 Where 子句中包含附加列
如何将 LocalDateTime 提供给 jpa/hibernate 查询?
这可能吗:JPA/Hibernate query with list property in result?