But if you update an item through Transfer, any collection it is in should re-sort itself implicitly once it is saved.
Are you not seeing that? If you need, there is also an explicit generated function for telling a collection to sort.: http://docs.transfer-orm.com/wiki/Generated_Methods.cfm Mark On Wed, Sep 8, 2010 at 7:34 PM, James Allen <slingsho...@googlemail.com>wrote: > Hi Mark, > > > > I'm not quite sure what you mean. I need to clear the cache so that the > sort order of the lookup table is refreshed whenever this field is modified > (i.e. when the admin system is used to re-order the pages allocated to each > block). > > > > At the lowest level I tried looping each item stored in the lookup table > based on both composite id's but that does not clear the lookup table > objects from the cache (blockmanagement.blockcontent). > > > > What is the correct way of refreshing the lookup table without simply > turning the cache off for this relationship (which I assume is not the only > answer)? > > > > Sorry if I've misunderstood though. > > > > James. > > > > --- > > *James Allen* > > *E:* ja...@jamesallen.name > > *Blog:* http://jamesallen.name > > *Twitter:* @CFJamesAllen (Coldfusion / Web development) > > *Twitter:* @jamesallenuk (General) > > *Twitter: *...@jamesallenvoice (Voiceover) > > > > *From:* transfer-dev@googlegroups.com [mailto: > transfer-...@googlegroups.com] *On Behalf Of *Mark Mandel > *Sent:* 08 September 2010 01:29 > *To:* transfer-dev@googlegroups.com > *Subject:* Re: [transfer-dev] Problem with cache and composite onetomany > with sortorder > > > > Stupid question - why do you need to clear the cache? > > If you remove an object from the cache, it will be removed, and any > relationships it is in will be cleared. > > So work bottom up, rather than top down. > > Mark > > > On Mon, Sep 6, 2010 at 9:20 PM, James Allen <slingsho...@googlemail.com> > wrote: > > Hi guys, > > I've having problems working out how to correctly remove a lookup > table from the cache which is constructed using a onetomany > composition but using compositeid's to allow the use of a manytomany > lookup table with a sortorder field. > > I'm running Transfer 1.1 final, Railo and MS SQL 2005 on Server 2003. > > Here is my transfer.xml showing the objects: > > <package name="blockmanagement"> > <object name="building" table="tblBuildings" > decorator="model.blockmanagement.building"> > <id name="id" type="numeric" /> > <property name="BuildingName" type="string" > column="BuildingName" / > > > <property name="smallImage" type="string" > column="SmallImage" /> > > <!-- Link between a building and the blocks > it contains --> > <onetomany name="Blocks" proxied="true" > lazy="true"> > <link to="blockmanagement.block" > column="lnkIDBuilding"/> > > <collection type="array"> > <order property="BlockName" > order="asc" /> > </collection> > </onetomany> > </object> > > <object name="block" table="tblBlocks" > decorator="model.blockmanagement.block"> > <id name="id" type="numeric" /> > <property name="blockName" type="string" > column="BlockName" /> > <property name="buildingID" type="numeric" > column="lnkIDBuilding" / > > > <property name="contactEmail" type="string" > column="ContactEmail" / > > > > <!-- Link between the block and the content > pages it has --> > <onetomany name="Pages" lazy="true"> > <link to="blockmanagement.blockcontent" > column="lnkIDBlock"/> > <collection type="array"> > <order property="sortOrder" > order="asc"/> > </collection> > </onetomany> > </object> > > <object name="blockcontent" > table="lnkBlock_Content"> > <compositeid> > <property name="lnkIDBlock"/> > <property name="lnkIDContent"/> > </compositeid> > > <property name="lnkIDBlock" type="numeric" > column="lnkIDBlock" /> > <property name="lnkIDContent" type="numeric" > column="lnkIDContent" /> > <property name="sortOrder" type="numeric" > column="SortOrder" /> > > <!-- Link between a block and a news item > --> > <manytoone name="Page" lazy="false"> > <link to="content.content" > column="lnkIDContent"/> > </manytoone> > </object> > </package> > > The only object I'm not showing in the above is the content.content > (pages) object as its not part my issue. > > As you'll see from the above, a building can have a number of blocks. > Each block can have a number of content pages. Now these content pages > are composed using a onetomany to the 'blockcontent' object which is > actually a lookup table with the following d/b structure: > > lnkIDBlock > lnkIDContent > SortOrder > > This object then has a manytoone composition to link the lookup table > to the content pages the block has. I used this method so that I can > handle 'SortOrder' field in the lookup table. > > The problem I'm having is that I can't find a way to remove the lookup > table data from the cache. My first thought was that if I simply > remove the block from the cache: > > <cfset > > getTransfer().discardByClassAndKey(className="blockmanagement.block",key=arguments.blockID)> > > ... that this would be enough to clear the pages lookup table > composition as well? > > However, this does not work and the old sortorder is maintained of the > frontend of the site until a full transfer restart. > > I then thought that perhaps I need to loop the content of the lookup > table and individually clear each 'blockcontent' object: > > <cfset var pages = getBlock(arguments.blockID).getPagesArray()> > <cfset var x = 0> > <cfset var keys = StructNew()> > > <cfloop from="1" to="#ArrayLen(pages)#" index="x"> > <cfset keys["lnkIDBlock"] = pages[x].getlnkIDBlock()> > <cfset keys["lnkIDContent"] = pages[x].getlnkIDContent()> > > <cfset > > getTransfer().discardByClassAndKey(className="blockmanagement.blockcontent",key=keys)> > </cfloop> > > However, still no luck with this and the sortorder does not change so > I assume the above code does not remove the blockcontent objects from > the cache? > > I have also tried removing the building from the cache as well (as I > retrieve the blocks via the building object) but still no joy. > > Sorry for the long post, but would love some insight on this. I'm > obviously doing something wrong but I just can't work out what. > > Thanks, > James. > > -- > Before posting questions to the group please read: > > http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer > > Try out the new Transfer ORM Custom Google Search: > http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8 > > You received this message because you are subscribed to the Google Groups > "transfer-dev" group. > To post to this group, send email to transfer-dev@googlegroups.com > To unsubscribe from this group, send email to > transfer-dev+unsubscr...@googlegroups.com<transfer-dev%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/transfer-dev?hl=en > > > > > -- > E: mark.man...@gmail.com > T: http://www.twitter.com/neurotic > W: www.compoundtheory.com > > cf.Objective(ANZ) - Nov 18, 19 - Melbourne Australia > http://www.cfobjective.com.au > > Hands-on ColdFusion ORM Training > www.ColdFusionOrmTraining.com > > -- > Before posting questions to the group please read: > > http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer > > Try out the new Transfer ORM Custom Google Search: > http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8 > > You received this message because you are subscribed to the Google Groups > "transfer-dev" group. > To post to this group, send email to transfer-dev@googlegroups.com > To unsubscribe from this group, send email to > transfer-dev+unsubscr...@googlegroups.com<transfer-dev%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/transfer-dev?hl=en > > -- > Before posting questions to the group please read: > > http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer > > Try out the new Transfer ORM Custom Google Search: > http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8 > > You received this message because you are subscribed to the Google Groups > "transfer-dev" group. > To post to this group, send email to transfer-dev@googlegroups.com > To unsubscribe from this group, send email to > transfer-dev+unsubscr...@googlegroups.com<transfer-dev%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/transfer-dev?hl=en > -- E: mark.man...@gmail.com T: http://www.twitter.com/neurotic W: www.compoundtheory.com cf.Objective(ANZ) - Nov 18, 19 - Melbourne Australia http://www.cfobjective.com.au Hands-on ColdFusion ORM Training www.ColdFusionOrmTraining.com -- Before posting questions to the group please read: http://groups.google.com/group/transfer-dev/web/how-to-ask-support-questions-on-transfer Try out the new Transfer ORM Custom Google Search: http://www.google.com/cse/home?cx=002375903941309441958:2s7wbd5ocb8 You received this message because you are subscribed to the Google Groups "transfer-dev" group. To post to this group, send email to transfer-dev@googlegroups.com To unsubscribe from this group, send email to transfer-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/transfer-dev?hl=en