User: dsundstrom
Date: 02/01/16 13:07:18
Modified: src/main/org/jboss/ejb/plugins/cmp/jdbc
JDBCLoadEntityCommand.java
Log:
Fixed bug where read ahead strategy was ignored.
Added support for lazy load groups.
Revision Changes Path
1.15 +23 -8
jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java
Index: JDBCLoadEntityCommand.java
===================================================================
RCS file:
/cvsroot/jboss/jboss/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCLoadEntityCommand.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- JDBCLoadEntityCommand.java 2002/01/15 22:33:08 1.14
+++ JDBCLoadEntityCommand.java 2002/01/16 21:07:18 1.15
@@ -40,7 +40,7 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Justin Forder</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Dirk Zimmermann</a>
* @author <a href="mailto:[EMAIL PROTECTED]">danch (Dan Christopherson)</a>
- * @version $Revision: 1.14 $
+ * @version $Revision: 1.15 $
*/
public class JDBCLoadEntityCommand {
private final JDBCStoreManager manager;
@@ -237,22 +237,37 @@
JDBCCMPFieldBridge requiredField,
EntityEnterpriseContext ctx) {
- ArrayList fields = new ArrayList(entity.getEagerLoadFields());
- if(requiredField != null && !fields.contains(requiredField)) {
- fields.add(requiredField);
+ // get the load fields
+ ArrayList loadFields = new ArrayList(entity.getFields().size());
+ if(requiredField == null) {
+ log.debug("Default eager-load for entity");
+ loadFields.addAll(entity.getEagerLoadFields());
+ } else {
+ loadFields.add(requiredField);
+ for(Iterator groups = entity.getLazyLoadGroups(); groups.hasNext();) {
+ List group = (List)groups.next();
+ if(group.contains(requiredField)) {
+ for(Iterator fields = group.iterator(); fields.hasNext();) {
+ JDBCFieldBridge field = (JDBCFieldBridge)fields.next();
+ if(!loadFields.contains(field)) {
+ loadFields.add(field);
+ }
+ }
+ }
+ }
}
// remove any field that is a member of the primary key
// or has not timed out or is already loaded
- for(Iterator iter=fields.iterator(); iter.hasNext();) {
- JDBCFieldBridge field = (JDBCFieldBridge)iter.next();
+ for(Iterator fields = loadFields.iterator(); fields.hasNext();) {
+ JDBCFieldBridge field = (JDBCFieldBridge)fields.next();
if(field.isPrimaryKeyMember() ||
!field.isReadTimedOut(ctx) ||
field.isLoaded(ctx)) {
- iter.remove();
+ fields.remove();
}
}
- return fields;
+ return loadFields;
}
}
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development