首页 > 解决方案 > SOQL 和 Apex - 将 SOQL 排除在 for 循环之外

问题描述

我有 2 个对象,比如对象 1 和对象 2。我首先遍历对象 1 记录的集合。

Id Object2Id = 'Some Id';
for (Object1 obj1 : objectOneCollection ) {

    String query = 'SELECT Id FROM Object2 WHERE Id =:' + Object2Id  + ' AND ' + obj1.SOQLClause__c;

    List<Object2> list = Database.query(query);

    //do some processing with list

}

希望我的代码说明了一切。我知道在上面的 for 循环中使用这个 Database.query() 是一种不好的做法。换句话说,在 for 循环中包含 SOQL 是我们不应该做的事情。

你能帮我找到一种方法把这个 Database.query() 从 for 循环中取出,确保它仍然符合我的要求吗?

因为,Object1 中有一个字段,其中包含要在 object2 的 where 子句中匹配的字符串。

标签: salesforceapexsoql

解决方案


推荐阅读