Bill,

Thanks so much for the detailed answer. The whole relationship DOA ->
Instance ... Gateway -> multiple records actually clears up a lot of
fuzziness I had around the difference between gateways and DAO. 

Thanks!
......................
Ben Nadel 
Web Developer
Nylon Technology
6 West 14th Street
New York, NY 10011
212.691.1134
212.691.3477 fax
www.nylontechnology.com

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
Of Bill Rawlinson
Sent: Wednesday, November 23, 2005 3:03 PM
To: [email protected]
Subject: Re: [CFCDev] Updating Join tables

Not quite but close..

assuming GetByCategoryID could return multiple entries you would want
have that in a "Gateway"

so you would have

<cfset entries = EntryGateway.GetByCategoryID(categoryID) />

If you wanted to just get a single Entry, say by it's ID then you
would reference the DAO

<cfset entry = EntryDAO.load(entryID) />

if you wanted to get all of the category ids from that freshly loaded
entry you would reference the entry as such:

<cfset categoryIdList = entry.getCategoryIdList() />

where entry is an instance of EntryInstance (or as some might call
EntryBean)

So you have an EntryInstance which is everything that defines a single
entry and encapsulates all of the properties you need for a single
Entry.

EntryDAO is responsible for all persistance involved for a single
EntryInstance

EntryGateway is responsible for all the manipulation of multiple
EntryInstances (EntryGateway, if returning a collection of
EntryInstance would probably just return the query as opposed to
building an collection of objects of type EntryInstance due to
performance concerns).

I typically name these objects as such:
EntryInstance = Entry
EntryDAO = EntryDAO
EntryGateway  = Entries

Hope this helps and doesn't further muddy the water.

Bill







On 11/23/05, Ben Nadel <[EMAIL PROTECTED]> wrote:
> Bill,
>
> Thanks for the explanation. That makes a lot of sense. So then, just to
take
> it one step further, if I was going to query for entries, rather than
> update, you might have something like:
>
> // Gets entries for a given category
> EntryDAO.GetByCategoryID( FORM.category_id )
>
> // Gets the category id list for the given entry instance
> EntryInstance.GetCategoryIDList()
>
>
> These are just off the top of my head... any suggestions.
>
> Thanks again,
> Ben Nadel
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf
> Of Bill Rawlinson
> Sent: Wednesday, November 23, 2005 9:07 AM
> To: [email protected]
> Subject: Re: [CFCDev] Updating Join tables
>
> I would pass the category ids into the "EntryDAO" since the entryDAO's
> job is to deal with the persistence of one complete Entry.  The
> category ids are a property of the Entry and thus the EntryDAO should
> save/update/read/delete that data as necessary for that particular
> Entry.
>
> A DAO doesn't necessarilly = access to a single table in the database.
>  A DAO maps to a single entity in your model.  Alot of times your
> entities are equivilent to a row in a table in the database but
> othertimes (alot of times) they span out into different tables just as
> your example does.
>
> Bill
>
>
>
> On 11/23/05, Ben Nadel <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > So I am trying to get my head around all these new OOP things for
> > ColdFusion. I feel like I have a better understanding of entity beans
and
> > how they get updated, but one thing that I have not seen an example of
is
> > how join tables get updated.
> >
> >
> >
> > Let's say that I have a blog entry table "entry" and each entry can be
> > "joined" to related categories in the table "category_entry_jn" table.
> Now,
> > when I am updating my entry via a Form, do I pass category IDs to the
> entry
> > bean for updating the join table? Or does it get passed to EntryDAO?
What
> > would these look like?
> >
> >
> >
> > EntryInstance.SetCategoryIDs(FORM.listCategoryID) ????
> >
> >
> >
> > Thanks,
> >
> >
> > ben
> >
> > ......................
> >
> > Ben Nadel
> >
> > Web Developer
> >
> > Nylon Technology
> >
> > 6 West 14th Street
> >
> > New York, NY 10011
> >
> > 212.691.1134
> >
> > 212.691.3477 fax
> >
> > www.nylontechnology.com
> > ----------------------------------------------------------
> >  You are subscribed to cfcdev. To unsubscribe, send an email to
> > [email protected] with the words 'unsubscribe cfcdev' as the subject of
> the
> > email.
> >
> >  CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
> > (www.cfxhosting.com).
> >
> >  An archive of the CFCDev list is available at
> > www.mail-archive.com/[email protected]
>
>
> --
> [EMAIL PROTECTED]
> http://blog.rawlinson.us
>
> If you want Gmail - just ask.
>
>
> ----------------------------------------------------------
> You are subscribed to cfcdev. To unsubscribe, send an email to
> [email protected] with the words 'unsubscribe cfcdev' as the subject of
the
> email.
>
> CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
> (www.cfxhosting.com).
>
> An archive of the CFCDev list is available at
> www.mail-archive.com/[email protected]
>
>
>
>
>
> ----------------------------------------------------------
> You are subscribed to cfcdev. To unsubscribe, send an email to
[email protected] with the words 'unsubscribe cfcdev' as the subject of the
email.
>
> CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).
>
> An archive of the CFCDev list is available at
www.mail-archive.com/[email protected]
>
>
>


--
[EMAIL PROTECTED]
http://blog.rawlinson.us

If you want Gmail - just ask.


----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to
[email protected] with the words 'unsubscribe cfcdev' as the subject of the
email.

CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).

An archive of the CFCDev list is available at
www.mail-archive.com/[email protected]





----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to 
[email protected] with the words 'unsubscribe cfcdev' as the subject of the 
email.

CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting 
(www.cfxhosting.com).

An archive of the CFCDev list is available at 
www.mail-archive.com/[email protected]


Reply via email to