[Ils-source] r1282 - trunk/src/com/resolutions/ils/data
scribe at crosswire.org
scribe at crosswire.org
Thu Dec 11 14:54:37 MST 2014
Author: scribe
Date: 2014-12-11 14:54:36 -0700 (Thu, 11 Dec 2014)
New Revision: 1282
Modified:
trunk/src/com/resolutions/ils/data/UserProfile.java
Log:
optimized for workgroup and role preload for user profile searching
Modified: trunk/src/com/resolutions/ils/data/UserProfile.java
===================================================================
--- trunk/src/com/resolutions/ils/data/UserProfile.java 2014-12-11 21:17:12 UTC (rev 1281)
+++ trunk/src/com/resolutions/ils/data/UserProfile.java 2014-12-11 21:54:36 UTC (rev 1282)
@@ -357,19 +357,20 @@
sql = "SELECT UP2.USERPRID FROM " + tables + " WHERE " + where;
sql = USERCOURSESUMMARY + " WHERE UP2.USERPRID IN ("+sql+") GROUP BY UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE OPTION (RECOMPILE)";
}
- else sql = "SELECT UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE FROM " + tables + " WHERE " + where;
+ else sql = "SELECT UP2.USERPRID, UP2.USERPRLNAME, UP2.USERPRFNAME, UP2.USERPRNUM, UP2.USERPRADDR2, UP2.USERPRHIREDATE, " +
+ " (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.ILSGROUPID=IG.ILSGROUPID AND UG.USERPRID=UP2.USERPRID AND GROUPTYPEID=2) WORKGROUP," +
+ " (SELECT MAX(GROUPNAME) FROM USERGROUP UG JOIN ILSGROUP IG ON UG.ILSGROUPID=IG.ILSGROUPID AND UG.USERPRID=UP2.USERPRID AND GROUPTYPEID=1) ROLE " +
+ " FROM " + tables + " WHERE " + where;
Vector<UserProfile> results = retVal.getDataSet(sql);
logger.debug("getSearchUserProfiles after getDataSet["+results.size()+"] ("+(System.currentTimeMillis() - timer)+")"); timer = System.currentTimeMillis();
- if (preloadCourseData) {
- // we've precached all our delay loads, so let's set our bits high to say so.
- for (UserProfile up: results) {
- up.isCourseSummaryDataLoaded = true;
- up.isRoleLoaded = true;
- up.isWorkgroupLoaded = true;
- }
- }
+ // we've precached all our delay loads, so let's set our bits high to say so.
+ for (UserProfile up: results) {
+ up.isCourseSummaryDataLoaded = (preloadCourseData);
+ up.isRoleLoaded = true;
+ up.isWorkgroupLoaded = true;
+ }
logger.debug("getSearchUserProfiles end ("+(System.currentTimeMillis() - timer)+")"); timer = System.currentTimeMillis();
return results;
}
More information about the Ils-source
mailing list