3

Account と Technology__c の間の結合オブジェクトであるというカスタム オブジェクトとという名前のTechnology__c結合オブジェクトがあります。カウントを取得するためにロールアップ サマリー フィールドをAccountTechnologies追加しましたが、ビジュアル フォース ページでアクセスすると、次のエラーが表示されます。count__cTechnology__c

      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>
4

1 に答える 1

4

Count__cカスタム コントローラーのクエリにフィールドを追加する必要があります。

- 編集 -

Technologies からクエリを実行する場合、クエリは次のようになります。
[Select Id, Name, Count__c From Technology__c];

ジャンクション オブジェクトからクエリを実行する場合は、サブクエリを使用してリレーションシップをクエリする必要があります。Technology または AccountTechnologies のオブジェクト定義を確認し ([App Setup] > [Create] > [Objects])、[Master-Detail] フィールドをクリックして、Child Relationship Name を見つけます。そのリレーション名に を追加し__rて、サブクエリの対象となるオブジェクトを見つけます。

Technology__r値を別のオブジェクトに取得するgetSObjects()には、Account でメソッドを使用します。このドキュメントの一番下に素晴らしい例があります。

また、詳細については、カスタム コントローラーのドキュメントを確認してください。

于 2012-01-25T15:08:27.047 に答える