[英]How to delete records in JPA with greater than condition?
我想從 PGSQL 數據庫表 (ContainerTypeRule) 中刪除其 id(rule_id) 大於 10000 的記錄。我正在 JPA 中創建一個查詢,如下所示
public void deleteAllTestRules(long startID){
em.createQuery("DELETE FROM ContainerTypeRule WHERE rule_id > ?startID", ContainerTypeRule.class)
.setParameter("startID", startID)
.executeUpdate();
}
但是我收到這樣的錯誤。
javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [DELETE FROM ContainerTypeRule WHERE rule_id > ?startID].
[46, 54] The positional input parameter ''{0}'' cannot use non-Integer characters.
如何在我的 JPA 查詢中為“id 大於 10000”條件制定正確的查詢。
你必須使用:不是嗎?
DELETE FROM ContainerTypeRule WHERE rule_id > :startID
您可以使用位置參數並使用“?” . 例如: DELETE FROM ContainerTypeRule WHERE rule_id >:startID
或者您可以使用命名參數並使用':' 。 例如: DELETE FROM ContainerTypeRule WHERE rule_id >?1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.