在salesforce中,声明类大概可以分成三类:分别是可以声明为with sharing,without sharing,以及两者均不声明.
public with sharing class A {} public without sharing class B{} public class C{}
三者区别如下:
- with sharing:类声明称with sharing类型,则需要走sharing settings中的sharing rules;
- without sharing:类声明称without sharing类型,则不需要走sharing settings中的sharing rules;
- 不声明:类不声明上述两种类型,则默认走sharing rules,如果别的类调用此类,则按照别的类的sharing rules 校验。
总局:具体用哪个形式,看项目需求,如果项目需要可控度高,防止因为salesforce自身的坑而无可奈何,则可以通过without sharing形式,校验自己用apex代码搞定;如果需要salesforce封装的sharing功能进行快速开发,可以通过with sharing。
sharing settings路径:setup->Administer->Security Controls->Sharing Settings。