Re: [J2EE] JPA JTA
剛剛重新看了Spec, 發現我的回文也不太準確...
spec在這裡: https://jcp.org/en/jsr/detail?id=338
準確來說是這樣
EM的部分
1. Container Managed(CM) EM必須是JTA EM
2. Application Managed(AM) EM可以是JTA EM或resource-local EM
Container的部分
1. JEE Container支援JTA EM與resource-local EM, 可以在JEE Container中使用CM與AM
2. 非JEE Container支援JTA EM與resource-local EM, 但只能使用AM
所以這種method結束後會自動commit的行為是JTA EM造成的 XD
※ 引述《cyclone350 (老子我最神)》之銘言:
: ※ 引述《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.195.55.170
※ 文章網址: https://www.ptt.cc/bbs/java/M.1438788669.A.978.html
推
08/06 06:36, , 1F
08/06 06:36, 1F
→
08/06 06:37, , 2F
08/06 06:37, 2F
→
08/06 06:38, , 3F
08/06 06:38, 3F
→
08/06 06:39, , 4F
08/06 06:39, 4F
推
08/06 07:44, , 5F
08/06 07:44, 5F
推
08/08 09:50, , 6F
08/08 09:50, 6F
→
08/08 09:52, , 7F
08/08 09:52, 7F
討論串 (同標題文章)