1

オブジェクトに存在する Visualforce ページの行を SOQL クエリが返さない Visualforce ページの SOQL クエリを介してオブジェクトから存在するレコードを取得する際に問題が発生しています

それらが存在することをどうやって知ることができますか? フォースエクスプローラーとワークベンチを使用しましたが、以下はレコードを返します

SELECT Code__c FROM External_membership_label__c WHERE Code__c = '3'

さて、visualforce ページは上記のレコードを返さず、以下のコード (コードからの数行) を返します。

  public String gvlLCCODE {get;set;}

  if(gvlLCCODE != null || gvlLCCODE != ''){

        List<External_membership_label__c> exisitingGVLcodes = [SELECT Code__c FROM External_membership_label__c WHERE Code__c = :gvlLCCODE];

        if (exisitingGVLcodes.Size() > 0){
            //blahh blahh
        }
}

助言がありますか?「gvlLCCODE」にオブジェクトに存在する値があることを示すデバッグがあります。また、たとえば、users テーブルから現在のユーザーを返すように SOQL を変更すると、レコードが返され、IF ステートメントが入力されます。

私が見逃したセキュリティの問題だと思います。しかし、私はこれらもチェックしました。

ありがとうございました

4

2 に答える 2

0

まず、&&についてKirillに耳を傾ける必要があります。一方だけでなく、両方の条件が満たされている必要があります。同様に、これ||は無意味であり、ここでの場合のように、式(a!=b)|(a!=c)は常に真です。ab!=c

第二に、あなたは間違いなくここでセキュリティの問題を抱えているように聞こえます。拡張機能の宣言をからwith sharingに変更しwithout sharingて実行することを確認します。行を取得した場合、その行とセキュリティの問題を共有しています。

于 2012-04-26T21:32:42.370 に答える
0

たとえば、IFステートメントでは、||の代わりに&&を使用することをお勧めします。

試験方法に問題がありますか?もしそうなら、それはそのメソッドがデフォルトで既存のレコードにアクセスできないためです。

于 2012-04-26T20:49:07.497 に答える