Here is how I set my self-refering entities up:

<table name="CATEGORY" idMethod="idbroker">
<column name="CATEGORY_ID" javaName="Id" primaryKey="true" required="true"
type="INTEGER"/>
<column name="STORE_ID" required="true" type="INTEGER"/>
<column name="PARENT_CATEGORY_ID" javaName="ParentId" required="false"
type="INTEGER"/>
<column name="CATEGORY_NAME" javaName="Name" required="true" type="VARCHAR"
size="75"/>
<column name="CATEGORY_DISPLAY_NAME" javaName="DisplayName" required="false"
type="VARCHAR" size="75"/>
<column name="CATEGORY_TEXT" javaName="Text" required="false"
type="LONGVARCHAR"/>
<column name="IS_VERTICAL" required="true" type="VARCHAR" default="false"
size="5"/>
<column name="AUDIT" required="true" type="TIMESTAMP"/>
 <foreign-key foreignTable="STORE">
  <reference local="STORE_ID" foreign="STORE_ID"/>
 </foreign-key>
 <foreign-key foreignTable="CATEGORY">
  <reference local="PARENT_CATEGORY_ID" foreign="CATEGORY_ID"/>
   </foreign-key>
   <unique>
    <unique-column name="CATEGORY_NAME"/>
   </unique>
</table>

<table name="SUB_CATEGORY" alias="CATEGORY"
baseClass="com.rippe.essential.agora.om.Category"
basePeer="com.rippe.essential.agora.om.CategoryPeer">
<column name="PARENT_CATEGORY_ID" javaName="ParentId" required="true"
type="INTEGER"/>
<foreign-key foreignTable="CATEGORY">
  <reference local="PARENT_CATEGORY_ID" foreign="CATEGORY_ID"/>
</foreign-key>
</table>

I used extending turbine user how-to as a basis for this.

hth,
Scott




> -----Original Message-----
> From: Ben Peter [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, March 31, 2002 2:00 AM
> To: [EMAIL PROTECTED]
> Subject: Torque: self-referring tables/objects
> 
> 
> All,
> 
> has anyone used Torque with self-referring tables?
> 
> In the tutorial example, if I have two tables, book and 
> author, which are 
> related n:1, I can call book.getAuthor() and get an Author 
> object back.
> 
> If, however, I have a foreign-key that refers back to the same table:
> 
> <table name="NODE" idMethod="idbroker">
>      <column name="NODE_ID" required="true" type="BIGINT" 
> primaryKey="true"/>
>      <column name="PARENT_NODE" required="false" type="BIGINT"/>
>      <foreign-key foreignTable="NODE">
>          <reference local="PARENT_NODE" foreign="NODE_ID"/>
>      </foreign-key>
> </table>
> 
> these relationships will not be setup. Why is this so, or is 
> it intended at all?
> 
> I have tried to work around this by not using the 
> <foreign-key/>. However, I 
> end up trying to
> node.setParentNode(parent.getPrimaryKeyAsLong());
> using deprecated methods.
> 
> Or should this read
> node.setParentNode(parent.getNodeId().getBigDecimal().getLongValue());
>  From the javadocs this looks correct, but I cannot claim to 
> know the semantics 
> of NumberKey.
> 
> Any help is appreciated.
> Cheers,
> Ben
> 
> 
> --
> To unsubscribe, e-mail:   
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

Reply via email to