Trying to perform a SOQL query to retrieve related
FeedComments(on the related FeedItems) to my sObject and I retrieved a warning that multi-level queries aren’t allowed.
Can anyone think of an optimization that will reduce the risk of overflowing script statements and allow me to retrieve related
FeedCommentsrelated to those items
List<myObject> sObjectsWithComments = [SELECT Id (SELECT Id,Body,ParentId, (SELECT Id, CommentBody, FeedItemId FROM FeedComments) FROM Feeds) FROM myObject];
If this isn’t achievable it’s still possible to manually selected the
FeedCommentand create a map, and do a manually association, but I really think this is something the database should be responsible for.
I guess I should also mention some of the difficult requirements:
- List item: In any given instance the page I’m working with may have
over 100 object records
- I need count the number of
FeedCommentsthat have been created by another user since a
LastVisit__cfield on the parent object. Hence the issue with looping
So I have a goal of something more akin too (psuedo-code):
List<myObject> sObjectsWithComments = [SELECT Id,LastVisit__c (SELECT Id,Body,ParentId, (SELECT Id, CommentBody, FeedItemId, CreatedDate FROM FeedComments WHERE CreatedDate > Parent.LastVisit__c) FROM Feeds WHERE CreatedDate > Parent.LastVisit__c) FROM myObject];
Separate the feed from the object to avoid a nested query.
List<FeedItem> feedWithComments = [SELECT Id,Body,ParentId, (SELECT Id, CommentBody, FeedItemId FROM FeedComments) FROM FeedItem WHERE ParentId IN (SELECT Id FROM myObject WHERE Field = 'value')];