There was some effort a while ago to have the EE support running on an LDAP datastore. How would
this work with a (possible future) LDAP datastore?
Adam Heath wrote:
David mentioned recently that the delegator has quite a number of
methods in it; this can be daunting to new users.
If it could handle sql natively, then this could be reduced.
EntityCondition condition = new EntityConditionList(
UtilMisc.toList(
new EntityExpr("firstName", EntityOperator.LIKE, "%Adam%"),
new EntityExpr("lastName", EntityOperator.LIKE, "%Heath%")
),
EntityOperator.AND
);
List people = delegator.findByConditionCache("Person", condition, null,
UtilMisc.toList("firstName", "lastName"));
... or ....
Query query = delegator.compileSql("SELECT * FROM Person WHERE firstName
LIKE $firstName AND lastName LIKE $lastName ORDER BY firstName, lastName");
query.setParameter("firstName", "%Adam%");
query.setParameter("lastName", "%Heath%");
List people = delegator.runQuery(query);
The compiled query could be cached, or created during an init phase;
this would speed things up. Additionally, views could also be done with
this sql code. And the sql string could be generated by a template;
meaning that whole parts of it might be conditional, using
freemarker/velocity conditions, both on joins, and regular group
by/order by/select fields/conditions.