代码之家  ›  专栏  ›  技术社区  ›  Tim

SalesForce DML基于集合的操作和原子事务

  •  1
  • Tim  · 技术社区  · 6 年前

    update myList 打电话。

    这样的调用 update

    1 回复  |  直到 6 年前
        1
  •  2
  •   eyescream    6 年前

    整个上下文是一个原子事务。当Apex代码运行时,SF已经启动,无论是Visualforce按钮点击、触发器还是任何其他入口点。如果遇到验证错误,则为null 指针

    update myList; 在“全有或全无”模式下工作。如果其中一条记录在验证规则必填字段缺失等方面失败,您将得到一个异常。您可以将它包装在try-catch块中,但仍然无法加载整个列表。

    如果你需要“尽你所能地保存”的行为,请仔细阅读 Database.update()

    最后但并非最不重要的一点是,如果您正在插入复杂的方案(插入帐户,插入联系人,其中一个联系人失败,但您在try catch中有此功能,因此帐户已保存好,那么现在,您必须手动删除它吗?弱……)你有 Database.setSavepoint() Database.rollback() 电话。

    https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_dml_database.htm

    https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/langCon_apex_transaction_control.htm

    https://salesforce.stackexchange.com/questions/9410/rolling-back-dml-operation-in-apex-method