前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >salesforce 零基础学习(五十六)实现getById

salesforce 零基础学习(五十六)实现getById

作者头像
Zero-Zhang
发布2018-01-05 11:37:30
7020
发布2018-01-05 11:37:30
举报

本来想通过template封装DAO中的getById,结果template中无法选择$(object_name),所以此种想法打消了,直接封装成一个Helper类,方便以后项目中如果有类似需要可以使用。

代码语言:javascript
复制
 1 public virtual with sharing class ObjectDAOHelper {
 2     /*
 3     *    @param sObjectName   sobject api name
 4     *    @param id              sobject record id
 5     *    return 返回此记录ID,如果不存在返回null
 6     */
 7     public static sObject getById(String sObjectName,String id) {
 8         String queryStr = 'select ';
 9         List<Schema.DescribeSObjectResult> sObjectResults = Schema.describeSObjects(new List<String>{sObjectName});
10         if(sObjectResults == null || sObjectResults.size() == 0) {
11             return null;
12         }
13         Schema.DescribeSObjectResult sObjectResult = sObjectResults.get(0);
14         Map<String,SObjectField> maps = sObjectResult.fields.getMap();
15         Integer i = 0;
16         for(Schema.SObjectField objectField : maps.values()) {
17             Schema.DescribeFieldResult fieldResult = objectField.getDescribe();
18             if(fieldResult.isAccessible()) {
19                 queryStr += fieldResult.getName();
20                 if(i != maps.keySet().size() - 1) {
21                     queryStr += ',';
22                 }
23                 i++;
24             }
25         }
26         queryStr += ' from ' + sObjectName + ' where Id = :id';
27         system.debug('queryStr : ' + queryStr);
28         List<sObject> objects = Database.query(queryStr);
29         if(objects == null || objects.size() == 0) {
30             return null;
31         }
32         return objects.get(0);
33     }
34 }

运行代码:

 结果展示:

代码语言:javascript
复制
queryStr : select Id,OwnerId,IsDeleted,Name,RecordTypeId,CreatedDate,CreatedById,LastModifiedDate,LastModifiedById,SystemModstamp,LastViewedDate,LastReferencedDate,GoodsName__c,GoodsBrand__c,GoodsPrice__c,GoodsCostPrice__c,GoodsPicture__c,Status__c,Goods_Code_Unique__c,GoodsDescribe__c,GoodsProfit__c,No__c from Goods__c where Id = :id

{
  "attributes" : {
    "type" : "Goods__c",
    "url" : "/services/data/v38.0/sobjects/Goods__c/a052800000Ejg1vAAB"
  },
  "Id" : "a052800000Ejg1vAAB",
  "OwnerId" : "00528000002JyclAAC",
  "IsDeleted" : false,
  "Name" : "a052800000Ejg1v",
  "RecordTypeId" : "01228000000U1u0AAC",
  "CreatedDate" : "2016-12-13T07:16:03.000+0000",
  "CreatedById" : "00528000002JyclAAC",
  "LastModifiedDate" : "2016-12-13T07:16:03.000+0000",
  "LastModifiedById" : "00528000002JyclAAC",
  "SystemModstamp" : "2016-12-13T07:16:03.000+0000",
  "GoodsName__c" : "测试商品1",
  "GoodsBrand__c" : "其他",
  "GoodsPrice__c" : 200.000000,
  "GoodsCostPrice__c" : 100.000000,
  "Goods_Code_Unique__c" : "GC00001",
  "GoodsDescribe__c" : "测试描述",
  "GoodsProfit__c" : 100.00,
  "No__c" : "2016-142"
}

总结:简单的helper类以及方法,篇中有问题的欢迎指出,不懂得欢迎留言。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档