• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Rép : Prefetching many-to-many relationship [Solved]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rép : Prefetching many-to-many relationship [Solved]


  • Subject: Re: Rép : Prefetching many-to-many relationship [Solved]
  • From: Chuck Hill <email@hidden>
  • Date: Wed, 21 Jan 2009 11:42:41 -0800


On Jan 21, 2009, at 11:36 AM, Jean Pierre Malrieu wrote:


The problem described in my previous post only happens when you build a fetch spech on a relation, and then attempt to prefetch another, flattened, many-to-many relationship.


I found the solution in a rather old post by P. Robinson:

http://wodeveloper.com/omniLists/eof/2000/September/msg00099.html

The following code works:

EOQualifier qual = Observation.INDICATOR.is(indicator);
EOEntity myEntity = EOModelGroup.defaultGroup().entityNamed(Observation.ENTITY_NAME);
qual = myEntity.schemaBasedQualifier(qual);
EOFetchSpecification fs = new EOFetchSpecification(Observation.ENTITY_NAME,qual,null);
fs.setPrefetchingRelationshipKeyPaths(new NSArray(new String[] {"dimensions"}));
observations = indicator.editingContext().objectsWithFetchSpecification(fs);


The obligation of building a schema-based qualifier is a bug I guess, and I am a bit disappointed it has not been fixed in 8 years...

It certainly looks like a bug to me. Have you reported this to Apple?

Thanks for the followup, I think this exact problem is somewhere on my "Bugs to Look At" list for this project.

Chuck


Le 3 nov. 08 à 22:33, Jean Pierre Malrieu a écrit :

Hi,

I have many-to-many relationship between entity Observation and entity Dimension.
This many-to-many is flattened.


I am fetching observations, trying to prefetch the "dimensions" relationship:

EOQualifier qual = Observation.Indicator.is(indicator);
EOFetchSpecification fs = new EOFetchSpecification(Observation.ENTITY_NAME,qual,null);
fs.setPrefetchingRelationshipKeyPaths(new NSArray(new String[] {"dimensions"}));
observations = indicator.editingContext().objectsWithFetchSpecification(fs);


I am getting the following exception:

java.lang.IllegalStateException: sqlStringForKeyValueQualifier: attempt to generate SQL for com.webobjects.eocontrol.EOKeyValueQualifier (observation.series = (com.fylab.educstat.eos.Series)'<com.fylab.educstat.eos.Series pk:"1000001">') failed because attribute identified by key 'observation.series' was not reachable from from entity 'DimensionObservation'







_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden

-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
  • Follow-Ups:
    • Re: Prefetching many-to-many relationship [Solved]
      • From: Jean Pierre Malrieu <email@hidden>
References: 
 >Rép : Prefetching many-to-many relationship [Solved] (From: Jean Pierre Malrieu <email@hidden>)

  • Prev by Date: Rép : Prefetching many-to-many relationship [Solved]
  • Next by Date: Re: last chance for stable
  • Previous by thread: Rép : Prefetching many-to-many relationship [Solved]
  • Next by thread: Re: Prefetching many-to-many relationship [Solved]
  • Index(es):
    • Date
    • Thread