我对我的测试类的查询有一个问题。我已经把AssetId__r。Product2Id在第一个查询中,将Product2Id在资产查询但错误仍然存在。因为错误说它需要资产。Product2这是一个对象,而不是一个字段,我失去了如何修复这个错误。以前有人遇到过这个错误吗?我需要你的帮助。
如果您发布实际的查询,会更容易。
你可能在你的代码中有类似的东西:
String name = myObject.AssetId__r.Product2.Name;
但是查询SELECT AssetId__r.Product2Id, ... FROM MyTable WHERE ...
所以你可以改变的是在查询中放入更多的产品字段。你最多可以"向上"5点
SELECT AssetId__r.Product2.Id,
AssetId__r.Product2.Name,
AssetId__r.Product2.ProductCode
FROM myObject
WHERE ...
它将工作,然后使用它的Apex可以将AssetId__r.Product2
视为正常的Product2
对象,就像单独查询一样。它将设置Id, Name, ProductCode
字段。
查询也是"安全"的。如果AssetId__c为空或Product2Id为空-它仍然会执行。您必须在Apex(或在查询的WHERE子句)中进行空检查