【发布时间】:2012-01-14 16:53:54
【问题描述】:
我在数据库中有一些简单的表(比如说 Oracle10g),我需要在 DAO 中实现删除多条记录的能力。方法remove() 接收一个id 数组(整数)作为参数。
现在我有一个查询字符串 "DELETE FROM news WHERE id = ?",我在 PreparedStatement 中使用它。我只需为数组中的每个 id 添加批处理,然后在 PreparedStatement 上执行。
我想知道是否有能力通过一个查询语句来执行它,比如"DELETE FROM news WHERE id IN ?"。但我找不到如何正确设置整数数组而不是'?'。
同样的问题也适用于 Hibernate 和 JPA。如果有任何结构可以解决这个问题?因为现在我使用类似批处理的方式:在数组中的每个 id 上添加 Query 到 Session 并提交事务。
【问题讨论】:
-
查看这个答案:stackoverflow.com/a/189399/851432。它指向link,在这种情况下可能有用。
标签: java hibernate jpa sql-delete