簡體   English   中英

如何刪除JPA中大於條件的記錄?

[英]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
  • 問題在於編寫查詢參數。
  1. 您可以使用位置參數並使用“?” . 例如: DELETE FROM ContainerTypeRule WHERE rule_id >:startID

  2. 或者您可以使用命名參數並使用':' 例如: DELETE FROM ContainerTypeRule WHERE rule_id >?1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM