Could someone apply this patch and commit the changes or explain why this change is
incorrect or inappropriate? I'd be happy to consider alternatives.
Thanks.
-----Original Message-----
From: Scott Finnerty
Sent: Tue 6/4/2002 5:25 PM
To: [EMAIL PROTECTED]
Cc:
Subject: [PATCH] Support recursive foreign key relationships
(I submitted this before but realized that I may not have explained it
simply enough and I didn't word wrap for text email readers... my bad.)
Attached is a patch that allows for a table to have a foreign key to
itself. An example of such a relationship would be a folder table where
each record could have a reference to a parent folder.
Currently there is a check in the Object.vm template that short circuits
the generation of the accessors to objects related by foreign key if the
name of the local table is the same as the foreign table. Does anyone
have any background on why this short circuit was put in place? We're
hoping it was just because the issue of handling recursive foreign key
relationships was deferred.
Scott Finnerty
Index: jakarta-turbine-torque/src/templates/om/Object.vm
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-torque/src/templates/om/Object.vm,v
retrieving revision 1.31
diff -u -r1.31 Object.vm
--- jakarta-turbine-torque/src/templates/om/Object.vm 28 May 2002 01:00:16
-0000 1.31
+++ jakarta-turbine-torque/src/templates/om/Object.vm 30 May 2002 21:39:23
-0000
@@ -331,12 +331,11 @@
##
#foreach ($fk in $table.Referrers)
#set ( $tblFK = $fk.Table )
- #if ( !($tblFK.Name.equals($table.Name)) )
#set ( $className = $tblFK.JavaName )
#set ( $relatedByCol = "" )
#foreach ($columnName in $fk.LocalColumns)
#set ( $column = $tblFK.getColumn($columnName) )
- #if ($column.isMultipleFK())
+ #if ($column.isMultipleFK() || $tblFK.Name.equals($table.Name) )
#set ($relatedByCol= "$relatedByCol$column.JavaName")
#end
#end
@@ -563,7 +562,7 @@
return $collName;
}
- #end #end #end #end
+ #end #end #end
## ===========================================================
#*
<<winmail.dat>>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
