Re: [J2EE] JPA JTA
※ 引述《luoqr (.....)》之銘言:
我在寫某個專案也很奇怪
只要 entity 有異動到,就算不做 save or update 等方法
transaction 結束後會把全部的異動 commit 到 DB 裡面...
還有一個就是
若 entity constraint 設定若跟 DB 不符,
save 當下不會出錯,transaction 結束後才會出錯
但是包在 transaction 外層的 code block 並不會接到 exception...
像這樣
try {
test1();
log.info("完成");
} catch(Exception e) {
log.error("出現錯誤")
}
就算 test1 出錯 (transaction 掛 test1),仍會 log 出 "完成"
這兩個 case 我不能理解阿,有人能解釋嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.192.133
※ 文章網址: https://www.ptt.cc/bbs/java/M.1438708254.A.153.html
推
08/05 07:45, , 1F
08/05 07:45, 1F
→
08/05 07:46, , 2F
08/05 07:46, 2F
我也有查到相關資訊
但是我不太能理解,既然這樣何必用 update 或 save ...
根本是 虛有其表的 method...
我在另一個專案,不會自動更新 entity,必須要 save 或 update 才可以
我也認為這樣比較合理 @@
※ 編輯: cyclone350 (123.193.192.133), 08/05/2015 08:05:35
→
08/05 10:24, , 3F
08/05 10:24, 3F
→
08/05 10:25, , 4F
08/05 10:25, 4F
→
08/05 10:26, , 5F
08/05 10:26, 5F
→
08/05 10:26, , 6F
08/05 10:26, 6F
回 swpoker,交易範圍是掛在 test1() 裡面 (是用 spring 的 proxy 做 transaction)
所以我覺得很奇怪...
推
08/05 15:56, , 7F
08/05 15:56, 7F
→
08/05 15:56, , 8F
08/05 15:56, 8F
同樣 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
推
08/05 23:00, , 9F
08/05 23:00, 9F
→
08/05 23:01, , 10F
08/05 23:01, 10F
→
08/05 23:02, , 11F
08/05 23:02, 11F
→
08/05 23:04, , 12F
08/05 23:04, 12F
→
08/05 23:05, , 13F
08/05 23:05, 13F
推
08/07 23:24, , 14F
08/07 23:24, 14F
→
08/07 23:25, , 15F
08/07 23:25, 15F
推
08/07 23:28, , 16F
08/07 23:28, 16F
→
08/07 23:28, , 17F
08/07 23:28, 17F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 4 篇):