推 luoqr: 1.entity處於managed狀態 只要有異動就會反應到db 08/05 07:45
→ luoqr: 2.資訊不足無法判斷 XD 08/05 07:46
我也有查到相關資訊
但是我不太能理解,既然這樣何必用 update 或 save ...
根本是 虛有其表的 method...
我在另一個專案,不會自動更新 entity,必須要 save 或 update 才可以
我也認為這樣比較合理 @@
※ 編輯: cyclone350 (123.193.192.133), 08/05/2015 08:05:35
→ swpoker: 主要還是"同步的時機點",同步次數過多是沒有必要的 08/05 10:24
→ swpoker: 同步基本就是交易範圍最後的時間點才會做 08/05 10:25
→ swpoker: 照你的例子,交易範圍超過你的程式範圍 08/05 10:26
→ swpoker: 你要限制交易的範圍在哪 08/05 10:26
回 swpoker,交易範圍是掛在 test1() 裡面 (是用 spring 的 proxy 做 transaction)
所以我覺得很奇怪...
推 phstudy: 1.是container managed persistence才會有這種現象 08/05 15:56
→ phstudy: application managed persistence就要自己處理了 08/05 15:56
同樣 framework (spring + hibernate) 及 server (tomcat) 的專案
一個需要 update 才會 commit,一個會自動 commit...
phstudy 說的 container 是指 server 嗎?
我沒有去詳細觀察兩個專案的設定,會覺得奇怪是因為沒特別注意就不會發現...
(當你看到大家專案都用 save 來處理 entity 時,
就會自然而然地認為要用 save 才是存入 DB)
有時間再去看設定找原因,到時候再把結果 post 出來 XD
※ 編輯: cyclone350 (123.193.192.133), 08/05/2015 21:25:31
推 phstudy: 如果不知道CMP跟AMP差別,建議你去讀JSR338 7.6~7.8 08/05 23:00
→ phstudy: 這裡的container是指JEE container 08/05 23:01
→ phstudy: 標準的tomcat不是JEE container, TomEE就另當別論了 08/05 23:02
→ phstudy: 標準的Tomcat是不支援CMP的 08/05 23:04
→ phstudy: 另外也可以用AOP去做出類似CMP的行為 08/05 23:05
推 asship: 請問是使用什麼資料庫呢? oracle預設會commit 08/07 23:24
→ asship: datasource使用apache的dbcp的話,預設是auto commit 08/07 23:25
推 asship: oracle的ucp.jar也是如此 08/07 23:28
→ asship: c3p0會幫忙rollback 08/07 23:28