Sounds like you're moving on already, but I want to remember having this problem before when using EOModeler. Creating subclasses of abstract entities defaults the subclasses to abstract. Are you sure your subclasses are not abstract? I use horizontal inheritance all the time for some documents with different line types that are vastly different. Can you qualify on an attribute that isn't a relationship?

John

On Feb 6, 2007, at 10:31 AM, Ken Anderson wrote:

Unfortunately, that didn't work. Even with setIsDeep set to true, it still has NULL for the table name. And yes, the abstract entity is set to abstract.

Oh well - I'm going to go with single table for this particular situation.

Thanks again Mike.
Ken


On Feb 6, 2007, at 10:58 AM, Mike Schrag wrote:

If I had to guess, I bet it's because none of the EOUtilities methods do a fetchSpec.setIsDeep(true) and thus don't fetch on subclasses. If you steal the code from that method and add the setIsDeep, maybe that will work?

EOQualifier qualifier = EOQualifier.qualifierWithQualifierFormat(format, args); EOFetchSpecification fetchSpec = new EOFetchSpecification (entityName, qualifier, null);
        fetchSpec.setIsDeep(true);
    NSArray results = ec.objectsWithFetchSpecification(fetchSpec);

On Feb 6, 2007, at 10:54 AM, Ken Anderson wrote:

Everyone,

I swear this has worked in the past - if I'm mistaken, please remind me!

I have an entity (MemberRuleField) with a relationship to an abstract entity (MemberRule). MemberRule (and it's sub-entities) has a relationship called MemberCompanyRole (this defines what company the rule is for). The inheritance structure is implemented using horizontal inheritance (separate table for each concrete sub-entity).

I would like to perform this query:

eos = EOUtilities.objectsWithQualifierFormat(ec, "MemberRuleField", "memberRule.memberCompanyRole = %@", new NSArray(new Object[] {memberCompanyRole}));


What I think this should do is create a query for every concrete sub-entity. Instead, I get this:

SELECT t0.field_values, t0.long_field_values, t0.member_rule_oid, t0.oid, t0.op, t0.rule_field_oid, t0.trans_id FROM member_rule_field t0, null T1 WHERE T1.member_company_role_oid = ? AND t0.member_rule_oid = T1.oid" withBindings: 1:11 (memberCompanyRoleOid)>

I only get one query, and the table name is NULL for the related table. That unfortunately makes sense, because the memberRule relationship points to the MemberRule entity, which is abstract and does not have a table (yes I know, single table inheritance would solve this problem...and vertical would probably solve it too).

Any thoughts?  I would really prefer to use horizontal here...

Ken

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/mschrag% 40mdimension.com

This email sent to [EMAIL PROTECTED]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/lists% 40anderhome.com

This email sent to [EMAIL PROTECTED]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/the_larsons% 40mac.com

This email sent to [EMAIL PROTECTED]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to