68、Schema的相关类

来源:互联网 发布:阿里云 图片处理服务 编辑:程序博客网 时间:2024/05/17 07:47
public class SObjectSchema {        public void testSchema(){        //获取SObject的token        //1、先获取所有token,然后通过key获取需要的token        //2、直接获取指定的sObject的token                //1、通过获取全部描述信息,然后get方法获取需要的指定字段的描述信息        Map<String,Schema.SObjectType> allSObjectTypeDescribes = Schema.getGlobalDescribe();        Schema.SObjectType merchandiseType1 = allSObjectTypeDescribes.get('Merchandise__c');                //2、直接获取指定sObject的token        Schema.SObjectType merchandiseType2 = Merchandise__c.SObjectType;                /*         * 获取Schema.DescribeSObjectResult         * 1、通过token的getDescribe方法**/        Schema.DescribeSObjectResult merchandiseResult = merchandiseType1.getDescribe();                /*         * 2、通过System命名空间下的Schema的方法         * */        List<String> sObjectTypes = new String[]{'Merchandise__c'};        List<Schema.DescribeSObjectResult> merchandiseResult1 = Schema.describeSObjects(sObjectTypes);        System.debug(merchandiseResult.getLabel());        System.debug('sObject的API的名称为' + merchandiseResult.getName());        System.debug('Student表是否为自定义的Object :' + (merchandiseResult.isCustom() ? '是':'否'));           //---------------------------------------//        List<Schema.ChildRelationship> childRelationResult = merchandiseResult.getChildRelationships();        for(Schema.ChildRelationship child : childRelationResult){            System.debug('merchandise子Object的关联名称:'+ child.getRelationshipName());        }        /**         * 以下操作位获取field的元信息结果,以Education__c为例         * 两种操作方式:         * 1、通过DescribeSObjectResult的fields方法获取token,然后再通过getDescribe方法获取         * 2、直接获取字段然后使用getDescribe方法         * */        Map<String,SObjectField> sObjectFieldMaps = merchandiseResult.fields.getMap();        SObjectField educationField = sObjectFieldMaps.get('Merchandise__c');        Schema.DescribeFieldResult educationFieldResult = educationField.getDescribe();        Schema.DisplayType educationType = educationFieldResult.getType();        System.debug('education字段类型为:'+educationType);        System.debug('education字段API名称为:'+educationFieldResult.getName());        System.debug('education字段label名称为:'+educationFieldResult.getLabel());        //------------------------------//        List<Schema.PicklistEntry> educationListValues = educationFieldResult.getPicklistValues();        Map<String,Object> educationListValueMap = new Map<String,Object>();       /* for(Schema.PicklistEntry educationListItem : educationListValues){            educationListValueMap.put(educationListItem.getValue(),new Map<String,Object>{                'value'=>educationListItem.getValue(),            })        }*/    }}

 

原创粉丝点击