details:   https://code.openbravo.com/erp/devel/pi/rev/17fff2db996a
changeset: 35647:17fff2db996a
user:      Asier Lostalé <asier.lostale <at> openbravo.com>
date:      Thu Apr 11 10:28:24 2019 +0200
summary:   fixed issue 40591: deprecate OBDal methods to compose sql in clauses

  Bind parameters should be used instead.

diffstat:

 
modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ADTreeDatasourceService.java
 |   3 +-
 src-test/src/org/openbravo/test/dal/DalComplexQueryTestOrderLine.java          
                            |  18 +++++----
 src-test/src/org/openbravo/test/dal/DalPerformanceExampleTest.java             
                            |  11 +++--
 src/org/openbravo/dal/service/OBDal.java                                       
                            |   4 ++
 4 files changed, 22 insertions(+), 14 deletions(-)

diffs (130 lines):

diff -r b45635db7349 -r 17fff2db996a 
modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ADTreeDatasourceService.java
--- 
a/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ADTreeDatasourceService.java
        Thu Apr 11 08:40:44 2019 +0200
+++ 
b/modules/org.openbravo.service.datasource/src/org/openbravo/service/datasource/ADTreeDatasourceService.java
        Thu Apr 11 10:28:24 2019 +0200
@@ -11,7 +11,7 @@
  * under the License.
  * The Original Code is Openbravo ERP.
  * The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2013-2018 Openbravo SLU
+ * All portions are Copyright (C) 2013-2019 Openbravo SLU
  * All Rights Reserved.
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -269,6 +269,7 @@
     return responseData;
   }
 
+  @SuppressWarnings("deprecation")
   private OBQuery<BaseOBObject> getNodeChildrenQuery(Map<String, String> 
parameters,
       String parentId, String hqlWhereClause, String hqlWhereClauseRootNodes, 
Tab tab, Tree tree,
       Entity entity) throws JSONException {
diff -r b45635db7349 -r 17fff2db996a 
src-test/src/org/openbravo/test/dal/DalComplexQueryTestOrderLine.java
--- a/src-test/src/org/openbravo/test/dal/DalComplexQueryTestOrderLine.java     
Thu Apr 11 08:40:44 2019 +0200
+++ b/src-test/src/org/openbravo/test/dal/DalComplexQueryTestOrderLine.java     
Thu Apr 11 10:28:24 2019 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2018 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2019 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -28,6 +28,7 @@
 import org.hibernate.Session;
 import org.hibernate.query.Query;
 import org.junit.Test;
+import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBQuery;
 import org.openbravo.model.common.order.OrderLine;
@@ -197,9 +198,8 @@
     whereClause.append(" and ol.salesOrder.documentStatus='CO' ");
 
     // Add the readable organization and client clauses
-    whereClause
-        .append(" and ol.organization " + 
OBDal.getInstance().getReadableOrganizationsInClause());
-    whereClause.append(" and ol.client " + 
OBDal.getInstance().getReadableClientsInClause());
+    whereClause.append(" and ol.organization in :orgs");
+    whereClause.append(" and ol.client in :clients");
 
     // append active
     whereClause.append(" and ol.active=true");
@@ -220,10 +220,12 @@
 
     log.debug(hql);
 
-    // final Session session = OBDal.getInstance().getSession();
-    // session.createQuery(hql.toString());
-    final Query<Object[]> query = 
OBDal.getInstance().getSession().createQuery(hql, Object[].class);
-    query.setParameter("bpId", "1000017");
+    final Query<Object[]> query = OBDal.getInstance()
+        .getSession()
+        .createQuery(hql, Object[].class)
+        .setParameter("bpId", "1000017")
+        .setParameterList("orgs", 
OBContext.getOBContext().getReadableOrganizations())
+        .setParameterList("clients", 
OBContext.getOBContext().getReadableClients());
 
     for (Object[] os : query.list()) {
       for (Object result : os) {
diff -r b45635db7349 -r 17fff2db996a 
src-test/src/org/openbravo/test/dal/DalPerformanceExampleTest.java
--- a/src-test/src/org/openbravo/test/dal/DalPerformanceExampleTest.java        
Thu Apr 11 08:40:44 2019 +0200
+++ b/src-test/src/org/openbravo/test/dal/DalPerformanceExampleTest.java        
Thu Apr 11 10:28:24 2019 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2012-2018 Openbravo SLU 
+ * All portions are Copyright (C) 2012-2019 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -32,6 +32,7 @@
 import org.junit.Test;
 import org.openbravo.base.provider.OBProvider;
 import org.openbravo.dal.core.DalUtil;
+import org.openbravo.dal.core.OBContext;
 import org.openbravo.dal.service.OBCriteria;
 import org.openbravo.dal.service.OBDal;
 import org.openbravo.dal.service.OBQuery;
@@ -250,13 +251,13 @@
       int i = 0;
       // for joining referenced objects we can't use OBQuery, but have to
       // use a direct Hibernate query object
-      final String queryStr = "from BusinessPartner as bp left join 
bp.businessPartnerCategory where bp.organization.id "
-          + OBDal.getInstance().getReadableOrganizationsInClause();
+      final String queryStr = "from BusinessPartner as bp left join 
bp.businessPartnerCategory where bp.organization.id in :orgs";
 
       final Query<Object[]> qry = OBDal.getInstance()
           .getSession()
-          .createQuery(queryStr, Object[].class);
-      qry.setMaxResults(1000);
+          .createQuery(queryStr, Object[].class)
+          .setParameterList("orgs", 
OBContext.getOBContext().getReadableOrganizations())
+          .setMaxResults(1000);
       final ScrollableResults scroller = qry.scroll(ScrollMode.FORWARD_ONLY);
       while (scroller.next()) {
         final BusinessPartner bp = (BusinessPartner) scroller.get()[0];
diff -r b45635db7349 -r 17fff2db996a src/org/openbravo/dal/service/OBDal.java
--- a/src/org/openbravo/dal/service/OBDal.java  Thu Apr 11 08:40:44 2019 +0200
+++ b/src/org/openbravo/dal/service/OBDal.java  Thu Apr 11 10:28:24 2019 +0200
@@ -690,7 +690,9 @@
    * 
    * @return an in-clause which can be directly used inside of a HQL clause
    * @see OBContext#getReadableOrganizations()
+   * @deprecated Use bind statement parameter instead of this method
    */
+  @Deprecated
   public String getReadableOrganizationsInClause() {
     return createInClause(OBContext.getOBContext().getReadableOrganizations());
   }
@@ -702,7 +704,9 @@
    * 
    * @return an in-clause which can be directly used inside of a HQL clause
    * @see OBContext#getReadableClients()
+   * @deprecated Use bind statement parameter instead of this method
    */
+  @Deprecated
   public String getReadableClientsInClause() {
     return createInClause(OBContext.getOBContext().getReadableClients());
   }


_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to