我已經在持久化,更新和刪除映射實體之前做了觸發器來記錄動作,但它只在MySQL內部,所以我認爲我必須做一個「應用程序級觸發器」使用註釋@PostPersist
,@PostUpdate
和@PostDelete
。日誌表使用JPA 2.1,EclipseLink,JSF 2.0
因此,當實體例如類別獲取持續,用於將信息記錄到日誌表的方法拋出,用下面的SQL:
INSERT INTO log (date_hour, table, id_tuple, user)
VALUES (NOW(), 'category', " + id + ", '" +
FacesContext.getCurrentInstance().getExternalContext().getRemoteUser() + "')";
我做了完全一樣的,使用createNativeQuery然後query.executeUpdate(),但什麼都沒有發生。
什麼是做我想做的最好的方法?提醒我正在使用EclipseLink。
謝謝! 我可以使攔截器異步提高性能。 – rsb2097