如何在SFDC中获得整个object的field的record?
写了个函数如下:
public List<sObject> queryAll(ID filterID, String sObjectName, String filteringField, String extraQuery) {
List<sObject> sObjectList = new List<sObject>();
Map<String , Schema.SObjectType> globalDescription = Schema.getGlobalDescribe();
Schema.sObjectType sObjType = globalDescription.get(sObjectName);
Schema.DescribeSObjectResult r1 = sObjType.getDescribe();
Map<String, Schema.SObjectField> sObjectFieldMap = r1.fields.getMap();
String theQuery = 'Select ';
for(String fields : sObjectFieldMap.keySet()){
theQuery += fields + ' ,';
}
thequery = theQuery.subString(0,theQuery.length()-1);
thequery +=' From '+sObjectName+' where '+filteringField+' = \''+ filterID + '\' ' + extraQuery;
sObjectList = Database.query(theQuery);
return sObjectList;
}
每次就可以直接调用函数,而不用一直选field的API名。不过只能适用于一级field。