# HG changeset patch
# Parent 50f563f4668d87892b7af97a75334942e131f527
fixes issues 16623: Add logic in CustomQuerySelectorDatasource to generate more efficient filter for foreign key domain types

diff --git a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
--- a/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
+++ b/modules/org.openbravo.userinterface.selector/src/org/openbravo/userinterface/selector/CustomQuerySelectorDatasource.java
@@ -41,6 +41,7 @@
 import org.openbravo.base.model.domaintype.BooleanDomainType;
 import org.openbravo.base.model.domaintype.DateDomainType;
 import org.openbravo.base.model.domaintype.DomainType;
+import org.openbravo.base.model.domaintype.ForeignKeyDomainType;
 import org.openbravo.base.model.domaintype.LongDomainType;
 import org.openbravo.client.application.ParameterUtils;
 import org.openbravo.client.kernel.RequestContext;
@@ -318,6 +319,9 @@
       }
     } else if (domainType instanceof BooleanDomainType) {
       whereClause = field.getClauseLeftPart() + " = " + value;
+    } else if (domainType instanceof ForeignKeyDomainType) {
+      // Assume left part definition is full object reference from HQL select
+      whereClause = field.getClauseLeftPart() + ".id = '" + value + "'";
     } else {
       whereClause = "C_IGNORE_ACCENT(" + field.getClauseLeftPart() + ")";
       whereClause += " LIKE C_IGNORE_ACCENT(";
