与 ormlite 在同一行上进行两次更新

two updates on same line with ormlite

我正在尝试处理同一个对象,但我不能再做 2 次更新:

    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();

I'm trying to work on a same object but I can't do 2 times again an update after an another:

如果您能分享在您尝试编写代码时生成的异常,将会对您有所帮助。我怀疑您遇到了某种 SQL 异常?

问题是UpdateBuilder在调用update()后不会忘记之前的信息。您可以使用 updateBuilder.reset() 让它忘记之前的 eq(...)updateColumnValue(...) 调用,或者只创建一个新的 UpdateBuilder 实例。没有 reset() 你只是添加到以前的电话。