我需要根据某些条件从表中删除一些行。 SQL 查询应该是这样的:
DELETE FROM tablename WHERE cond1 = 1 AND cond2 = 2
但是我没有找到这样的方法。我可以删除单个模型:
model.delete();
或者我可以获得符合给定标准的模型列表:
Model.FINDER.where().eq("cond1", 1).eq("cond2", 2).findList();
当然,我可以获得模型列表并在循环中删除它们,但这是非常糟糕的解决方案。我得到的可能是无限的 SQL 请求,而不是一个 SQL 请求。 我也不想执行原始 SQL 代码,因为它会破坏 SQL 跨平台兼容性。
这确实是一项经常性的任务。 Play Framework 无法使用它是真的吗?
最佳答案
确实,一个一个地删除对象是不好的解决方案,幸运的是 Ebean 允许您执行 SqlUpdate
喜欢:
SqlUpdate tangoDown = Ebean.createSqlUpdate("DELETE FROM table_name WHERE id = 123");
tangoDown.execute();
参见:other question用于参数化查询。
关于playframework-2.0 - 如何使用 Playframework 2/Ebean 执行 SQL 批量删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21813138/