2012-10-01 49 views
0

我需要一個單獨的對象,其中包含子對象的相關字段。使用相關數據初始化頂點中的對象

目前,我不喜歡這樣寫道:

Opportunity opp = [SELECT Id, Name, Account.Id, Account.Name FROM Opportunity LIMIT 1]; 

Account acc = new Account(
    Id  = opp.Account.Id, 
    Name  = opp.Account.Name 
); 

當大量相關對象我必須初始化比這更多的領域工作和腳本變得非常大又醜。

什麼是相關領域的數據初始化到一個單獨的對象的最快方法?

回答

1

您必須定義在SOQL查詢(鐵道部信息here)的所有字段。

但是,如果你要克隆的對象是沒有必要的:

Opportunity opp = [SELECT Account.Id, Account.Name 
        FROM Opportunity 
        LIMIT 1]; 

Account acc = opp.Account; 

實例與自定義對象:

Contract__c c = [ Select Account__r.FirstName 
        From Contract__c 
        Where Account__r.FirstName != null 
        Limit 1]; 

Account a = c.Account__r; 
+1

如何與一個自定義對象做到這一點?如果我使用opp.Account__c,它會返回一個Id,如果我使用opp.Account__r,則它需要一個字段。編輯:看來你可以使用__r字段。 –

+0

剛剛更新了我的示例中的問題 – mast0r

+0

謝謝,我會將其標記爲在一分鐘內回答,但您的第一條語句並不完全正確,您只需定義要在SOQL查詢中使用的字段。 –