You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/02/27 19:59:37 UTC
svn commit: r512361 -
/incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java
Author: snoopdave
Date: Tue Feb 27 10:59:36 2007
New Revision: 512361
URL: http://svn.apache.org/viewvc?view=rev&rev=512361
Log:
Using JOIN rather than sub-select in getWebsites() query.
Modified:
incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java
Modified: incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java?view=diff&rev=512361&r1=512360&r2=512361
==============================================================================
--- incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java (original)
+++ incubator/roller/branches/roller_4.0/src/org/apache/roller/business/jpa/JPAUserManagerImpl.java Tue Feb 27 10:59:36 2007
@@ -541,10 +541,18 @@
int size = 0;
StringBuffer queryString = new StringBuffer();
StringBuffer whereClause = new StringBuffer();
-
- queryString.append("SELECT w FROM WebsiteData w WHERE ");
-
+
+ if (user != null) {
+ queryString.append("SELECT w FROM WebsiteData w WHERE ");
+ } else {
+ queryString.append("SELECT w FROM WebsiteData w JOIN PermissionsData p WHERE ");
+ params.add(size++, user);
+ whereClause.append(" p.user = ?" + size);
+ params.add(size++, Boolean.FALSE);
+ whereClause.append(" p.pending = ?" + size);
+ }
if (startDate != null) {
+ if (whereClause.length() > 0) whereClause.append(" AND ");
params.add(size++, startDate);
whereClause.append(" w.dateCreated > ?" + size);
}
@@ -562,13 +570,6 @@
if (whereClause.length() > 0) whereClause.append(" AND ");
params.add(size++, active);
whereClause.append(" w.active = ?" + size);
- }
- if (user != null) {
- whereClause.append(" AND EXISTS (SELECT p from PermissionsData p WHERE p.website = w ");
- params.add(size++, user);
- whereClause.append(" AND p.user = ?" + size);
- params.add(size++, Boolean.FALSE);
- whereClause.append(" AND p.pending = ?" + size + ")");
}
whereClause.append(" ORDER BY w.dateCreated DESC");