2017-04-21 66 views
1

我想刪除其歷時一天較舊的記錄,我在Spring數據JPA使用如下SQL查詢:春數據JPA,本地查詢休眠例外

@Query(value = "delete from tableName data where data.CREATION_DATE < TRUNC(SYSDATE) - 1", nativeQuery = true) 
    void deleteRecordsOlderThanYesterday(); 

我得到的例外是:

所致:org.springframework.orm.jpa.JpaSystemException:無法提取由致結果集元數據 :org.hibernate.HibernateException:無法提取由致的結果集的元數據

:java.sql.SQLSyntaxErrorException:ORA -00900:無效的S QL聲明

上述代碼有什麼問題,或者有沒有其他方法可以在HQL中實現?

請讓我知道。

回答

2

無論何時從SQL語句(UPDATE,DELETE)定義查詢您需要使用@Modifying註釋(來自org.springframework.data.jpa.repository)。試試這個:

@Modifying 
@Query(value = "delete from tableName data where data.CREATION_DATE < TRUNC(SYSDATE) - 1", 
     nativeQuery = true) 
void deleteRecordsOlderThanYesterday(); 
+0

@infiniteRefactor ...感謝您的回答,我認爲üR右和檢查我的SYS烏拉圭回合的答案後,我會接受UR答案 – Khushi