System.SObjectException:通过SOQL检索SObject行而不查询请求的字段:

时间:2012-01-25 14:52:53

标签: salesforce apex-code visualforce soql

我有一个名为Technology__c的自定义对象和名为AccountTechnologies的连接对象,它是Account和Technology__c之间的连接对象。因此,AccountTechnologies具有双方的主要详细信息关系。 我在count__c中添加了Technology__c汇总摘要字段以获取计数但是当我在visual force页面中访问它时,我收到以下错误

      System.SObjectException: SObject row was retrieved via SOQL without querying the requested field: Technology__c.count__c 

以下是visualforce页面代码

      <apex:pageBlockTable title="Technologies" value="{!AllTechnologies}"
                var="t">
                <apex:column value="{!t.Name}" headerValue="Technologies" />
                <apex:column value="{!t.count__c}" headerValue="Count" width="20%">

                </apex:column>        
            </apex:pageBlockTable>

1 个答案:

答案 0 :(得分:4)

您需要在自定义控制器中将Count__c字段添加到查询中。

- 编辑 -

如果您要查询技术,查询将如下所示:
[Select Id, Name, Count__c From Technology__c];

如果要查询联结对象,则需要使用子查询查询关系。您可以检查Technology或AccountTechnologies对象定义(应用程序设置&gt;创建&gt;对象),然后单击主 - 详细信息字段以查找子关系名称。在该关系名称中添加__r以查找子查询的对象。

要将Technology__r值转换为其他对象,您可以在帐户上使用getSObjects()方法。这个documentation在底部有一个很好的例子。

另外,请查看custom controller documentation以获取更多信息。