如何从顶点中的 ID 获取对象

How do I get a object from ID in apex

我有一个自定义对象 1(Lent_c 图书馆借出的书籍列表。它有 2 个 feilds 图书查找和人员查找)和 2 个查找字段,它有另一个自定义 object2(图书对象。它有3 feelds Quantity, 借用的 feelds 数量和 ISBN) 在查找的 feeld 中。我正在尝试使用 object1 更改 object2 中的值。这是我正在使用的代码。

trigger Book_lentout on Lent__c (before insert) {
    for(Lent__c l:Trigger.new)
    {
        Book__c k =  l.Book_Details__c;
        k.Books_Borrowed__c++;

    }

}

它给我一个错误错误:编译错误:第 4 行第 9 列

从 Id 到 Book__c 的非法分配

根据我的理解,它返回的 ID 而不是 Book__c 对象类型

对于上面的代码,无需为此代码编写代码 - 只需在 Book 对象上添加一个汇总字段,汇总借出的物品数量。

至于你的实际问题,只要你知道你正在寻找什么类型的对象,你上面的代码就是: Book_c book = new Book__c(Id = l.Book_Details__c);

现在,您必须执行查询以获取借书的数量,以便您可以递增 1,因此您必须在收集所有 ID 后发出 soql 查询。所以这里是为了学习的完整解决方案。 在 Lent__c 上触发 Book_lentout(插入前){

        Id[] bookIds = new List<Id>();
        for(Lent__c lent : Trigger.new)
        {
            bookIds.add(l.Book_Details__c);
        }

        Book__c[] books = [select Books_Borrowed__c from Book__c where Id in :bookIds];
        for (Book__c b : books) {
            b.Books_Borrowed__c += 1;
        }

    }

这甚至还不完整,因为每本书可能有多个借出记录,但您明白了(我希望)。但同样,您真的应该通过汇总字段来执行此操作。