zoukankan      html  css  js  c++  java
  • 68、Schema的相关类

    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(),
                })
            }*/
        }
    }
  • 相关阅读:
    A4纸网页打印中对应像素的设定和换算
    网页打印2-打印界面实现
    为何 .NET 总是BUG不断?
    WEB程序员也要学习学习安全防护(一)
    用Delphi编写ASP的ActiveX
    兼容性 无提示关闭窗口
    在ASP.NET 2.0中实现本地化
    取消XP的视频预览功能
    axman 的专栏,专业,真专业
    Delphi TXMLDocument 慎用 doNodeAutoIndent
  • 原文地址:https://www.cnblogs.com/weizhen/p/6434746.html
Copyright © 2011-2022 走看看