我有一個簡單的網絡應用程序與數據庫與兩個表。JPA當數據庫被修改外部
的管理員可以手動直接從SQL腳本(例如與phpMyAdmin)和我的web應用修改的第一表應寫入第二表的一些數據此編輯之後。
我可以做到嗎?
我有一個簡單的網絡應用程序與數據庫與兩個表。JPA當數據庫被修改外部
的管理員可以手動直接從SQL腳本(例如與phpMyAdmin)和我的web應用修改的第一表應寫入第二表的一些數據此編輯之後。
我可以做到嗎?
可以使用@PrePersist譯註: http://docs.oracle.com/javaee/5/api/javax/persistence/PrePersist.html
public final class SampleBusinessProcess {
@PrePersist
private void preperist(final MyObject obj) {
entityManager.store(new Object2());
}
}
這將第二個實體存儲到另一個表,如果第一個被修改。
編輯: 觸發器無法啓動JPA代碼。這不是JPA的一部分。
Oracle數據庫內的觸發可開始一塊Java代碼作爲Java觸發。
我假設你正在使用的是MySQL數據庫,所以你必須在databaselevel創建觸發器的一個timerservice將輪詢第二個表更改。
好的,但只有當我直接從我的應用程序更改數據時才能使用。如果我從第三方應用更改行,此方法不起作用。 – CeccoCQ 2012-02-28 16:24:45
然後你必須在你的數據庫中創建一個觸發器。 – 2012-02-28 16:25:53
是否要將數據存儲到兩個表中? – 2012-02-28 16:13:28
我已將預加載的數據放入第一個表格。當用戶編輯數據(插入,刪除或更新)時,我的應用程序應在第二個表中寫入一行。 – CeccoCQ 2012-02-28 16:16:52