From: "Adam Heath" <doo...@brainfood.com>
On 05/24/2012 10:18 AM, Adam Heath wrote:
On 05/24/2012 08:15 AM, Adrian Crum wrote:
On 5/20/2012 10:01 AM, Jacques Le Roux wrote:
Quick questions (seems that there is a lack of internal
documentation to say the least), there are not only addressed to
Adam...

About javacc dependency do we really need it *OOTB*?
Can't we use rather externally maintained ant targets like in
ant-contrib? For instance pleaser read
http://markmail.org/message/lidw73cuzyfr6cic

What is framework\sql used for *OOTB*?

From what I understand, the sql component parses SQL statements into
OFBiz entity conditions, and then executes the statement using the
entity engine. I don't think it is used OOTB for anything, but it
could be useful for integration with third-party libraries that take
SQL statements - like Jasper Reports.

You can also parse *raw* where clauses.

==
import org.ofbiz.sql.Parser;
import org.ofbiz.entity.sql.EntityPlanner;

String sqlConditionString = "contactMechId = ?contactMechId";

def sqlPlanner = new EntityPlanner();
def reader = new StringReader(sqlCondition);
def sqlCondition = new Parser(reader).EntityCondition();

while (true) {
def condition = sqlPlanner.getConditionPlanner().parse(sqlCondition,
[contactMechId: '1']);
delegator.findList(entityName, condition, ....)
}
==

I suppose I should place some of that in a util class(SQLUtil comes to
mind, it was never finished).

I support (), and, or, in, between, it's rather complete.

The idea was that you would parse the sqlCondition once, in a static
{} block somewhere, then at runtime, just build that map.  This
builds-upon the map/list idea inherent in ofbiz.

I also had plans that you could store sql strings into a properties
file somewhere, so that they could possibly be changed by the end-user
without having to recompile.

I need to revisit the "SELECT a.partyId, b.* EXCLUDE(partyId) FROM
Party a LEFT JOIN PartyContactMech b USING (partyId)", now that ofbiz
better supports conditions on the join clauses, esp. when combining
views into other views.

Thanks for the explanation,

So should we not rather create a Jira with all the needed in a patch until this 
is finished?
Or maybe a branch would be easier?

Still with the slim-down idea in mind and as objective.

Jacques

Reply via email to