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

StackOverflow https://stackoverflow.com/questions/9004698

質問

I have a custom object called Technology__c and join object called AccountTechnologies which is a join object between Account and Technology__c .So AccountTechnologies has a master detail relationship from both sides. I have added a count__c roll-up summary field in the Technology__c to get the count But when i access it in the visual force page I get the following error

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

The following is the visualforce page code

      <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>
役に立ちましたか?

解決

You'll need to add the Count__c field to your query in your custom controller.

-- Edit --

If you're querying off of Technologies, the query would look like this:
[Select Id, Name, Count__c From Technology__c];

If you're querying off of a junction object, you would need to query the relationship using a subquery. You can check the Technology or AccountTechnologies object definition (App Setup > Create > Objects) and click the Master-Detail field to find the Child Relationship Name. Add an __r to that relationship name to find what object to subquery from.

To get the Technology__r values into another object you would use the getSObjects() method on the Account. This documentation has a great example at the bottom.

Also, check the custom controller documentation for more information.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top