Comments (6)
Not sure what it is your asking for here. A configured Query Factory is exposed from fflib_SObjectSelector via the newQueryFactory method, at this point you can call whatever methods you desire before calling toSOQL. Does this help?
from fflib-apex-common.
@afawcett , what I meant is in fflib_SObjectSelector addQueryFactorySubselect method is calling subSelectQuery(SObjectType related) method on line 330 of fflib_ObjectSelector.cls
Doesn't that call need to be updated since that method is deprecated in fflib_QueryFactory?
But I guess you are right, I can just get the configured Query Factory via newQueryFactory() method from Selector and call the methods from QueryFactory themselves.
from fflib-apex-common.
@afawcett So, to continue on what I was saying before, on very hack-ish way I can add public method like that in fflib_SObjectSelector.
public fflib_QueryFactory addQueryFactorySubselect(fflib_QueryFactory parentQueryFactory, Boolean includeSelectorFields, String relationshipName)
{
fflib_QueryFactory subSelectQueryFactory =
parentQueryFactory.subselectQuery(relationshipName);
return configureQueryFactory(
subSelectQueryFactory,
m_enforceCRUD,
m_enforceFLS,
includeSelectorFields);
}
To use your sample example, following method call will become
public List<Opportunity> selectByIdWithProducts(Set<ID> idSet)
{
fflib_QueryFactory opportunitiesQueryFactory = newQueryFactory();
fflib_QueryFactory lineItemsQueryFactory =
new OpportunityLineItemsSelector().
addQueryFactorySubselect(opportunitiesQueryFactory);
something like this after the changes...
public List<Opportunity> selectByIdWithProducts(Set<ID> idSet)
{
fflib_QueryFactory opportunitiesQueryFactory = newQueryFactory();
fflib_QueryFactory lineItemsQueryFactory =
new OpportunityLineItemsSelector().
addQueryFactorySubselect(opportunitiesQueryFactory,true,'OpportunityLineItems');
Thoughts?
from fflib-apex-common.
Sorry for the delay, yes that looks great. Can you do a PR?
from fflib-apex-common.
Hi @afawcett , sure thing. Will do that.
Happy Holidays!
from fflib-apex-common.
👍
from fflib-apex-common.
Related Issues (20)
- Unit test failure in multi-currency org HOT 4
- Deploy button doesn't deploy because there are test failures HOT 1
- Expected a QueryException due to read only user not having access to Opportunity HOT 7
- Switch to Inherited Sharing on SObjectDescribe and SObjectSelector HOT 2
- With latest fflib, do TriggerHandlers become service class consumers? If so what happens to UoW? HOT 6
- Selected tests in fflib_SObjectSelectorTest fail in an org with encryption enabled on Account.Name HOT 2
- Selector Mocks to Include SOQL Query Retrieve Check HOT 1
- fflib_SObjectUnitOfWork doCommitWork executes all dml for all registered types even if there are no changes
- Update README as session recordings are not available HOT 2
- fflib_SObjectDescribe.cls fails to resolve cross-object field paths for Person Accounts
- Aggregate SOQL support. HOT 2
- Disable Savepoint in tests HOT 4
- Inconsistent Code Coverage and Test Failures in fflib-apex-common HOT 1
- fflib_SObjectSelector and fflib_SObjectUnitOfWork have insufficient test code coverage. HOT 2
- Add queryWithBinds to Selector layer HOT 2
- Unit test failing fflib_SecurityUtilsTest & sysadmin_objectAndField_access HOT 8
- Coverage of UnitOfWork class HOT 1
- Versioning HOT 1
- fflib_SObjectSelectorTest failure with Lookup relationship and Person Type Accounts HOT 5
- fflib_SObjectSelectorTest Error: 'Assertion Failed: Expected: 12345.67, Actual: 9117.25' HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fflib-apex-common.