You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by br...@apache.org on 2003/09/07 17:15:01 UTC
cvs commit: db-ojb/src/java/org/apache/ojb/broker/accesslayer ReferencePrefetcher.java CollectionPrefetcher.java
brj 2003/09/07 08:15:01
Modified: src/java/org/apache/ojb/broker/accesslayer
ReferencePrefetcher.java CollectionPrefetcher.java
Log:
fixed creation of Identity (real class is null)
Revision Changes Path
1.8 +11 -11 db-ojb/src/java/org/apache/ojb/broker/accesslayer/ReferencePrefetcher.java
Index: ReferencePrefetcher.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/ReferencePrefetcher.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ReferencePrefetcher.java 31 Aug 2003 00:15:03 -0000 1.7
+++ ReferencePrefetcher.java 7 Sep 2003 15:15:01 -0000 1.8
@@ -95,21 +95,22 @@
*/
protected void associateBatched(Collection owners, Collection children)
{
+ ObjectReferenceDescriptor ord = getObjectReferenceDescriptor();
ClassDescriptor cld = getOwnerClassDescriptor();
- Iterator iter = owners.iterator();
Object owner, relatedObject;
Object fkValues[];
Identity id;
- PersistentField field = getObjectReferenceDescriptor().getPersistentField();
- Class topLevelClass = getBroker().getTopLevelClass(getObjectReferenceDescriptor().getItemClass());
- Class realClass = getObjectReferenceDescriptor().getItemClass();
+ PersistenceBroker pb = getBroker();
+ PersistentField field = ord.getPersistentField();
+ Class topLevelClass = pb.getTopLevelClass(ord.getItemClass());
+ Iterator iter = owners.iterator();
+
while (iter.hasNext())
{
owner = iter.next();
- fkValues = getObjectReferenceDescriptor().getForeignKeyValues(owner,cld);
- // id = new Identity(getItemClassDescriptor().getClassOfObject(), fkValues);
- id = new Identity(realClass, topLevelClass, fkValues);
- relatedObject = getBroker().getObjectByIdentity(id);
+ fkValues = ord.getForeignKeyValues(owner,cld);
+ id = new Identity(null, topLevelClass, fkValues);
+ relatedObject = pb.getObjectByIdentity(id);
field.set(owner, relatedObject);
}
}
@@ -126,7 +127,6 @@
Collection idsSubset = new HashSet();
Iterator iter = owners.iterator();
Class topLevelClass = getBroker().getTopLevelClass(ord.getItemClass());
- Class realClass = ord.getItemClass();
Object[] fkValues;
Object owner;
Identity id;
@@ -136,7 +136,7 @@
{
owner = iter.next();
fkValues = ord.getForeignKeyValues(owner,cld);
- id = new Identity(realClass, topLevelClass, fkValues);
+ id = new Identity(null, topLevelClass, fkValues);
if (cache.lookup(id) == null)
{
idsSubset.add(id);
1.16 +5 -7 db-ojb/src/java/org/apache/ojb/broker/accesslayer/CollectionPrefetcher.java
Index: CollectionPrefetcher.java
===================================================================
RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/accesslayer/CollectionPrefetcher.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- CollectionPrefetcher.java 29 Aug 2003 15:11:02 -0000 1.15
+++ CollectionPrefetcher.java 7 Sep 2003 15:15:01 -0000 1.16
@@ -237,11 +237,9 @@
{
CollectionDescriptor cds = getCollectionDescriptor();
ClassDescriptor cld = getItemClassDescriptor();
- Iterator iter = children.iterator();
PersistentField field = cds.getPersistentField();
PersistenceBroker pb = getBroker();
- ClassDescriptor ownerCld = getOwnerClassDescriptor();
- Class ownerClass = pb.getTopLevelClass(ownerCld.getClassOfObject());
+ Class ownerTopLevelClass = pb.getTopLevelClass(getOwnerClassDescriptor().getClassOfObject());
// this collection type will be used:
Class collectionClass = cds.getCollectionClass();
Object owner, relatedObject;
@@ -250,6 +248,7 @@
HashMap ownerIdsToLists = new HashMap();
ArrayList list;
Object result;
+ Iterator iter;
// ensure that all owners will get non-null collections
iter = owners.iterator();
@@ -264,7 +263,7 @@
{
relatedObject = iter.next();
fkValues = cds.getForeignKeyValues(relatedObject, cld);
- id = new Identity(ownerCld.getClassOfObject(), ownerClass, fkValues);
+ id = new Identity(null, ownerTopLevelClass, fkValues);
list = (ArrayList) ownerIdsToLists.get(id);
// BRJ: do not add object if it's already in the list
@@ -279,8 +278,7 @@
id = (Identity) it.next();
list = (ArrayList) ownerIdsToLists.get(id);
owner = pb.getObjectByIdentity(id);
- if ((collectionClass == null)
- && field.getType().isArray())
+ if ((collectionClass == null) && field.getType().isArray())
{
int length = list.size();
Class itemtype = field.getType().getComponentType();
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org