To edit or add content to this Wiki, you can simply create a new account at http://wocommunity.org/account.
If you want to count the number of objects off a to-many, but without fetching all of them into memory, then add this to your _Entity.java templates inside the to-many section:
public Number count${relationship.capitalizedName}() { return countForRelationship("${relationship.name}"); } public EOQualifier qualifierFor${relationship.capitalizedName}() { return qualifierForRelationshipWithKey("${relationship.name}"); }
Then either add this to _Entity.java (lame), or to a generic superclass that you use for all of your EO objects (preferred), add this:
public EOQualifier qualifierForRelationshipWithKey(String aKey) { this.willRead(); if ((aKey != null)) { String anEntityName = this.entityName(); EOEntity anEntity = EOModelGroup.defaultGroup().entityNamed(anEntityName); EORelationship aRelationship = anEntity.relationshipNamed(aKey); if (aRelationship != null) { EOEditingContext anEditingContext = this.editingContext(); EOGlobalID aGlobalID = anEditingContext.globalIDForObject(this); String aModelName = anEntity.model().name(); EODatabaseContext aDatabaseContext = EOUtilities.databaseContextForModelNamed(anEditingContext, aModelName); aDatabaseContext.lock(); NSDictionary aRow = aDatabaseContext.snapshotForGlobalID(aGlobalID); aDatabaseContext.unlock(); EOQualifier aQualifier = aRelationship.qualifierWithSourceRow(aRow); return aQualifier; } } return null; } /** * Return count for the given relationship. */ public Integer countForRelationship(String key) { EOQualifier qual = qualifierForRelationshipWithKey(key); if (qual != null) { String anEntityName = this.entityName(); EOEntity anEntity = EOModelGroup.defaultGroup().entityNamed(anEntityName); EORelationship aRelationship = anEntity.relationshipNamed(key); return ERXEOControlUtilities.objectCountWithQualifier(this.editingContext(), aRelationship .destinationEntity().name(), qual); } return null; }