如何在 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】:

你可以只传入一个列表,大概是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);

【讨论】:

以上是关于如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Hibernate/JPA Generated UPDATE Query 的 Where 子句中包含附加列

如何将 LocalDateTime 提供给 jpa/hibernate 查询?

这可能吗:JPA/Hibernate query with list property in result?

如何使用 JPA 和 Hibernate 设置默认查询超时?

JPA/Hibernate Query 不识别命名参数

如何保持 Spring Data JPA 或 Hibernate 中“in”子句中提供的顺序 [重复]