1

SOQL 查询未返回对象中确实存在的 visualforce 页面上的行 我在通过 visualforce 页面上的 SOQL 查询检索对象中存在的记录时遇到问题

我怎么知道它们的存在?我使用了 force explorer 和 workbench,以下返回记录

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”有一个存在于对象中的值。另外,如果我将 SOQL 更改为,例如,从 users 表中返回当前用户,它会返回一条记录,然后进入 IF 语句。

我认为这是我错过的安全问题。但我也检查了这些。

谢谢

4

2 回答 2

0

首先,你应该听基里尔关于 && 的信息,这两个条件都应该满足,而不仅仅是一个。同样,||是没有意义的,公式(a!=b)|(a!=c)对于任何a时候都是正确的,b!=c就像这里的情况一样

其次,听起来您肯定在这里遇到了安全问题。with sharing验证从to更改扩展的声明without sharing并运行。如果您获得该行,则您与该行共享安全问题。

于 2012-04-26T21:32:42.370 回答
0

好吧,首先,在您的 IF 语句中,您可能想要使用 &&,而不是 ||。

你的测试方法有问题吗?如果是这样,那是因为默认情况下该方法无权访问现有记录。

于 2012-04-26T20:49:07.497 回答