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]>