Author: manaRH
Date: 2012-10-02 09:19:22 -0400 (Tue, 02 Oct 2012)
New Revision: 15182

Modified:
   
branches/community/Seam_2_3/jboss-seam/src/main/java/org/jboss/seam/framework/Query.java
   
branches/community/Seam_2_3/jboss-seam/src/test/java/org/jboss/seam/test/unit/QueryTest.java
Log:
JBSEAM-4529

Modified: 
branches/community/Seam_2_3/jboss-seam/src/main/java/org/jboss/seam/framework/Query.java
===================================================================
--- 
branches/community/Seam_2_3/jboss-seam/src/main/java/org/jboss/seam/framework/Query.java
    2012-10-02 12:52:29 UTC (rev 15181)
+++ 
branches/community/Seam_2_3/jboss-seam/src/main/java/org/jboss/seam/framework/Query.java
    2012-10-02 13:19:22 UTC (rev 15182)
@@ -33,6 +33,8 @@
    private static final Pattern WHERE_PATTERN = 
Pattern.compile("\\s(where)\\s",         Pattern.CASE_INSENSITIVE);
    private static final Pattern ORDER_PATTERN = 
Pattern.compile("\\s(order)(\\s)+by\\s", Pattern.CASE_INSENSITIVE);
    private static final Pattern GROUP_PATTERN = 
Pattern.compile("\\s(group)(\\s)+by\\s", Pattern.CASE_INSENSITIVE);
+   private static final Pattern JOIN_FETCH_PATTERN = Pattern.compile("join 
fetch",       Pattern.CASE_INSENSITIVE);
+   private static final String  JOIN_OPERATOR="join";
 
    private static final Pattern ORDER_COLUMN_PATTERN = 
Pattern.compile("^\\w+(\\.\\w+)*$");
 
@@ -319,9 +321,9 @@
              throw new IllegalStateException("invalid select clause for 
query");
           }
       }
-      
+      String 
fromToWherePart=JOIN_FETCH_PATTERN.matcher(ejbql.substring(fromLoc, 
whereLoc)).replaceAll(JOIN_OPERATOR);
       return new StringBuilder(ejbql.length() + 15).append("select 
count(").append(subject).append(") ").
-         append(ejbql.substring(fromLoc, whereLoc).replace("join fetch", 
"join")).
+         append(fromToWherePart).
          append(ejbql.substring(whereLoc, groupLoc)).toString().trim();
    }
    

Modified: 
branches/community/Seam_2_3/jboss-seam/src/test/java/org/jboss/seam/test/unit/QueryTest.java
===================================================================
--- 
branches/community/Seam_2_3/jboss-seam/src/test/java/org/jboss/seam/test/unit/QueryTest.java
        2012-10-02 12:52:29 UTC (rev 15181)
+++ 
branches/community/Seam_2_3/jboss-seam/src/test/java/org/jboss/seam/test/unit/QueryTest.java
        2012-10-02 13:19:22 UTC (rev 15182)
@@ -40,7 +40,7 @@
       assertEquals(query.getCountEjbql(), "select count(distinct p) from 
Person p");
       query.setUseWildcardAsCountQuerySubject(true);
      
-      query.setEjbql("select v from Vehicle v join fetch v.person");
+      query.setEjbql("select v from Vehicle v JOIN FETCH v.person");
       query.setOrderColumn("make");
       query.parseEjbql();
       // TODO this should eventually become count(v)

_______________________________________________
seam-commits mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-commits

Reply via email to