2017-02-17 48 views
0

我試圖在同一對象上工作,但一個又一個之後,我不能再做2次更新:兩個更新與ormlite

DatabaseHelper db = new DatabaseHelper(getActivity()); 

    Dao<Demandes, Integer> demandesDao = null; 
    demandesDao = db.getDemandesDao(); 
    UpdateBuilder<Demandes,Integer> updateBuilder = demandesDao.updateBuilder(); 

    updateBuilder.where().eq("id", demande.getId()); 

    updateBuilder.updateColumnValue("statutEnvoieSendLead", 1); 


    updateBuilder.updateColumnValue("dateEnvoieSendLead", new Date()); 
    updateBuilder.updateColumnValue("contactWebId", slr.getOption().getContactWebID()); 
    updateBuilder.update(); 


    GoogleAnalytics ga = new GoogleAnalytics(getActivity()); 
    ga.envoieTracker(idApplication, demandeId, logement, typeForm); 


    XMLSendSimulation xmlSendSimulation = new XMLSendSimulation(slr.getOption().getContactWebID()); 
    xml = XMLGenerator.GenerateSendSimulationXml(xmlSendSimulation); 
    updateBuilder.where().eq("id", demande.getId()); 
    updateBuilder.updateColumnValue("xmlSimulation", xml); 
    updateBuilder.update(); 

回答

0

我努力工作在同一個對象上,但是我不能再次執行2次更新之後的另一個更新:

這對您分享您在嘗試代碼時生成的異常會很有幫助。我懷疑你正在得到某種SQL異常?

問題是UpdateBuilder在調用update()後不會忘記之前的信息。您可以使用updateBuilder.reset()讓它忘記以前的eq(...)updateColumnValue(...)調用,或者只是創建一個新的UpdateBuilder實例。如果沒有reset(),您只需添加前面的電話即可。

+0

所以我不能在同一個對象上工作?如果我不想在另一個之後進行更新,我必須重置? – Ben

+0

@Ben你可以做很多事情,但是你需要展示例外,以便我能夠提供幫助。說出你正在努力完成的事情也很有幫助。 – Gray

+0

問題是因爲我的xml和單引號,請幫我在這裏請:http://stackoverflow.com/questions/42368307/updatebuilder-and-pass-an-xml – Ben