Hi Adam,
Beginning at this commit (actually I had to use a dichotomic research between 949599 and 949628, the joy of git bursting when you
use svn on your end ;o), I get the error below
2010-06-01 22:11:30,656 (http-0.0.0.0-8443-5) [ ServiceDispatcher.java:543:ERROR] Error in Service [executeFind]: Error running
Find on the [ProductSearchNoNotInUse] entity: SQL Exception while executing the
following:SELECT DISTINCT PR.PRODUCT_ID, PR.PRODUCT_TYPE_ID, PR.PRIMARY_PRODUCT_CATEGORY_ID, PR.PRODUCT_NAME FROM public.PRODUCT PR
LEFT OUTER JOIN public.SUPPLIER_PRODUCT SP ON PR.PRODUCT_ID = SP.PRODUCT_ID
WHERE AND ((PR.PRODUCT_TYPE_ID <> ? OR PR.PRODUCT_TYPE_ID IS NULL)) ORDER BY PR.PRODUCT_NAME ASC (ERREUR: erreur de syntaxe sur ou
prÞs de ½ AND +
Position: 206)
If I simply revert it, it looks ok. As it begins to be late here, for now I
have simply reverted it at r950237
HTH
Jacques
Author: doogie
Date: Sun May 30 22:07:55 2010
New Revision: 949617
URL: http://svn.apache.org/viewvc?rev=949617&view=rev
Log:
Add new variants of makeConditionWhereString that take a StringBuilder, and
deprecate the old versions that don't.
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java?rev=949617&r1=949616&r2=949617&view=diff
==============================================================================
---
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java
(original)
+++
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/datasource/GenericDAO.java
Sun May 30 22:07:55 2010
@@ -695,11 +695,7 @@ public class GenericDAO {
// WHERE clause
List<EntityConditionParam> whereEntityConditionParams =
FastList.newInstance();
- StringBuilder whereString = makeConditionWhereString(modelEntity, whereEntityCondition, viewWhereConditions,
whereEntityConditionParams);
- if (whereString.length() > 0) {
- sqlBuffer.append(" WHERE ");
- sqlBuffer.append(whereString.toString());
- }
+ makeConditionWhereString(sqlBuffer, " WHERE ", modelEntity, whereEntityCondition, viewWhereConditions,
whereEntityConditionParams);
// GROUP BY clause for view-entity
if (modelViewEntity != null) {
@@ -765,7 +761,12 @@ public class GenericDAO {
return new EntityListIterator(sqlP, modelEntity, selectFields, modelFieldTypeReader, this, whereEntityCondition,
havingEntityCondition, findOptions.getDistinct());
}
+ @Deprecated
protected StringBuilder makeConditionWhereString(ModelEntity modelEntity, EntityCondition whereEntityCondition,
List<EntityCondition> viewWhereConditions, List<EntityConditionParam> whereEntityConditionParams) throws GenericEntityException {
+ return makeConditionWhereString(new StringBuilder(), "", modelEntity, whereEntityCondition, viewWhereConditions,
whereEntityConditionParams);
+ }
+
+ protected StringBuilder makeConditionWhereString(StringBuilder whereString, String prefix, ModelEntity modelEntity,
EntityCondition whereEntityCondition, List<EntityCondition> viewWhereConditions, List<EntityConditionParam>
whereEntityConditionParams) throws GenericEntityException {
ModelViewEntity modelViewEntity = null;
if (modelEntity instanceof ModelViewEntity) {
modelViewEntity = (ModelViewEntity) modelEntity;
@@ -786,7 +787,10 @@ public class GenericDAO {
String viewClause = SqlJdbcUtil.makeViewWhereClause(modelEntity,
datasourceInfo.joinStyle);
- StringBuilder whereString = new StringBuilder();
+ if (entityCondWhereString.length() > 0 || UtilValidate.isNotEmpty(viewEntityCondWhereString) || viewClause.length() > 0)
{
+ whereString.append(prefix);
+ }
+
if (entityCondWhereString.length() > 0) {
boolean addParens = entityCondWhereString.charAt(0) != '(';
if (addParens) whereString.append("(");
@@ -1040,11 +1044,7 @@ public class GenericDAO {
// WHERE clause
List<EntityConditionParam> whereEntityConditionParams =
FastList.newInstance();
- StringBuilder whereString = makeConditionWhereString(modelEntity, whereEntityCondition, viewWhereConditions,
whereEntityConditionParams);
- if (whereString.length() > 0) {
- sqlBuffer.append(" WHERE ");
- sqlBuffer.append(whereString.toString());
- }
+ makeConditionWhereString(sqlBuffer, " WHERE ", modelEntity, whereEntityCondition, viewWhereConditions,
whereEntityConditionParams);
// GROUP BY clause for view-entity
if (isGroupBy) {