• 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: Fetching from related object
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fetching from related object


  • Subject: Re: Fetching from related object
  • From: Randall Perry <email@hidden>
  • Date: Mon, 26 Apr 2004 10:03:11 -0400

I rebuilt my model from scratch just in case I had messed something up with
it.

There are 2 tables I imported from an existing PostgreSQL db: cust_view and
log, which EOModeler named CustView and Log.

CustView's pk is custNo. Log's pk is logNo and it has the foreign key
custno.

I created a relationship by using diagram view, control-dragging from
CustView custNo to Log custNo which created a to-many link from CustView to
Log called 'logs', and a to-one link from Log to CustView called 'custview'.
Consistency check on model passes. I reimported the model and java class
files to my project.

So I changed the fetch to this:
    logInfo = (NSArray)custInfo.valueForKey("logs");

Again, it runs without error but returns an empty array.

Just to describe my project again: A static HTML page sends username,
password form values to a DirectAction in my project. The DA fetches a
single row from CustView which is used to authenticate. Then I need to grab
associated log records for the cust, and that's where it's failing.

As I said in a previous post if I force a prefetch from the 1st fetch on
CustView the above code returns a populated array:
    custFetchSpec.setPrefetchingRelationshipKeyPaths(new NSArray("Log"));

Don't know if the fact that I'm not using sessions and created my own
editing context has anything to do with this.

************************************************************************

Here's a listing of the relevant code:

From DirectAction.java
----------------------

public WOActionResults loginAction() {

    NSArray custInfo;
    NSArray logInfo;
    EOEditingContext ec = new EOEditingContext();   // create an editing
context

    String userName  = ((String)request().formValueForKey("login")).trim();
// grab form values and trim
    String passWord  = ((String)request().formValueForKey("pass")).trim();

    // set filter on query using userName and passWord vars passed from form
    EOQualifier qual = EOQualifier.qualifierWithQualifierFormat("userName =
'" + userName + "' and password = '" + passWord + "'", null);
    // create fetchSpec with qualifier
    EOFetchSpecification custFetchSpec = new
EOFetchSpecification("CustView", qual, null);

    // fetch cust record
    custInfo = ec.objectsWithFetchSpecification(custFetchSpec);

    // fetch associated log records
    logInfo = (NSArray)custInfo.valueForKey("logs");

    ...
    ...
}


From CustView.java
------------------
    public NSArray logs() {
        return (NSArray)storedValueForKey("logs");
    }

From Log.java
--------------
    public CustView custview() {
        return (CustView)storedValueForKey("custview");
    }


on 4/25/04 7:40 PM, Arturo Pirez at email@hidden wrote:

>>
>> Tried the code above:
>>     logInfo = (NSArray)custInfo.valueForKey("Log");
>>
>> It runs ok but returns an empty array.
>
> Seems that the relationship is improperly defined.  If your
> relationships are improperly defined then WO/EOF will misbehave in all
> sorts of really incredibly irritating and painful ways.  Would you care
> to elaborate on those two tables and the EOF entities you've defined on
> them?
>
> ----
> WO in philadelphia - wanna cheesesteak with that?
> Please visit webobjects.meetup.com.

--
Randall Perry
sysTame

Xserve Web Hosting/Co-location
Website Development/Promotion
Mac Consulting/Sales

http://www.systame.com/
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.


  • Follow-Ups:
    • Re: Fetching from related object
      • From: Chuck Hill <email@hidden>
    • Re: Fetching from related object
      • From: Arturo Pérez <email@hidden>
References: 
 >Re: Fetching from related object (From: Arturo Pérez <email@hidden>)

  • Prev by Date: Re: add gif file to WO project in WOLips
  • Next by Date: method lookup order performance benefit?
  • Previous by thread: Re: Fetching from related object
  • Next by thread: Re: Fetching from related object
  • Index(es):
    • Date
    • Thread