zoukankan      html  css  js  c++  java
  • salesforce 零基础学习(五十六)实现getById

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

     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 }

    运行代码:

     结果展示:

    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类以及方法,篇中有问题的欢迎指出,不懂得欢迎留言。

  • 相关阅读:
    ok
    Android设备激活量超10亿 3个月增长1亿台
    JavaWeb--文件的上传和下载
    JavaWeb--Listener
    JavaWeb--JSTL
    JavaWeb--自定义标签4--EL自定义函数
    JavaWeb--自定义标签4--带父标签的自定义标签
    codeforces 437B. The Child and Set 解题报告
    codeforces 437A. The Child and Homework 解题报告
    codeforces 435 B. Pasha Maximizes 解题报告
  • 原文地址:https://www.cnblogs.com/zero-zyq/p/6202737.html
Copyright © 2011-2022 走看看