曾經(jīng)做項(xiàng)目沒有考慮那么多,對于級聯(lián)表操作都是正常的一步一步操作,沒有考慮過失敗情況,最近項(xiàng)目遇見了失敗的情況,導(dǎo)致碰到了相應(yīng)的情況,特此mark一下,免得后期繼續(xù)踩坑。

需求如下:新建頁面,頁面中包含1.新建企業(yè),2.新建聯(lián)系人,3.新建機(jī)會。任何一步的邏輯或者DML操作失敗都會導(dǎo)致整體的回滾。只有當(dāng)三步都正常插入成功了以后才會跳轉(zhuǎn)到新生成的機(jī)會的標(biāo)準(zhǔn)頁面。

1.NewOpportunityController:這里做了一個邏輯判斷,當(dāng)聯(lián)系人為空情況下,不允許新建聯(lián)系人。當(dāng)然,現(xiàn)實(shí)場景不會在這里判斷,但是現(xiàn)實(shí)場景會有很多的復(fù)雜的業(yè)務(wù)邏輯,這里只是簡單的處理。

電腦培訓(xùn),計算機(jī)培訓(xùn),平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

 1 public class newOpportunityController { 
 2     Account account; 
 3     Contact contact; 
 4     Opportunity opportunity; 
 5     OpportunityContactRole role; 6      7     public Account getAccount() { 
 8         if(account == null) 
 9             account = new Account(); 
10         return account; 
11     } 
12     public Contact getContact() { 
13         if(contact == null) 
14             contact = new Contact(); 
15         return contact; 
16     } 
17     public Opportunity getOpportunity() { 
18         if(opportunity == null) 
19           &