Ahh... You need to rename turbine-schema.xml to
turbine-schema.xml.nogenerate (or anything besides *-schema.xml). Next,
delete all of the om.Turbine*, om.BaseTurbine*, om.map.Turbine* classes
that were generated. These classes are not used. They only make things
more confusing.
Now, your schema file.... You should not list TURBINE_USER as a table
in your schema file. Instead, use AUDIOTEX_USER with an alias of
TurbineUser. This will cause AudiotexUser, AudiotexUserPeer, and the
associated Base* classes to be generated. The Base* classes will extend
the adapters TurbineUserAdpater and TurbineUserPeerAdpaters,
respectively. Foreign key references in your schema file should use the
table name AUDIOTEX_USER.
I have made the appropriate changes to your schema file below.
<table name="AUDIOTEX_USER" alias="TurbineUser"
baseClass="de.geoconnect.audiotex.om.TurbineUserAdapter"
basePeer="de.geoconnect.audiotex.om.TurbineUserPeerAdapter">
<column name="USER_ID" primaryKey="true" required="true"
type="INTEGER"/>
</table>
<table name="KUNDE">
<column name="KUNDE_ID" primaryKey="true"
required="true" type="INTEGER"/>
<foreign-key foreignTable="AUDIOTEX_USER">
<reference local="KUNDE_ID" foreign="USER_ID"/>
</foreign-key>
</table>
This should get the om.* classes generating correctly for you. On thing
that I noticed is that the primary key of your KUNDE table is also the
foreign key to AUDIOTEX_USER. Was this your intent? Perhaps you really
just wanted to add a USER_ID column in the KUNDE table. If so, change
the definition of the KUNDE table as follows.
<table name="KUNDE">
<column name="KUNDE_ID" primaryKey="true"
required="true" type="INTEGER"/>
<column name="USER_ID" required="true" type="INTEGER"/>
<foreign-key foreignTable="AUDIOTEX_USER">
<reference local="USER_ID" foreign="USER_ID"/>
</foreign-key>
</table>
After making those changes, run the project-om task again. The only
Turbine* or BaseTurbine* classes that you should have in your om package
are TurbineUserAdapter and TurbineUserPeerAdapter. You should not have
any Turbine* classes in the om.map package.
Just FYI, here is the exact syntax from my schema file. The name of my
extend turbine user class is called NeoUser. I added clientId as a
column in TURBINE_USER.
<table name="NEO_USER" alias="TurbineUser"
baseClass="com.nequalsone.om.TurbineUserAdapter"
basePeer="com.nequalsone.om.TurbineUserPeerAdapter">
<column name="USER_ID" required="true" primaryKey="true"
type="INTEGER"/>
</table>
<table name="ADDRESS">
<column name="OBJECT_ID" primaryKey="true" required="true"
type="INTEGER"/>
<column name="LINE_1" size="40" type="VARCHAR"/>
<column name="LINE_2" size="30" type="VARCHAR"/>
<column name="CITY" size="30" type="VARCHAR"/>
<column name="STATE" size="2" type="VARCHAR"/>
<column name="ZIP_CODE" size="5" type="VARCHAR"/>
<column name="ZIP_PLUS_4" size="4" type="VARCHAR"/>
<column name="CLIENT_ID" required="true" type="INTEGER"/>
<foreign-key foreignTable="CLIENT">
<reference foreign="OBJECT_ID" local="CLIENT_ID"/>
</foreign-key>
</table>
Please let me know if this helps.
-----Original Message-----
From: Marc Lustig [mailto:[EMAIL PROTECTED]]
Sent: Saturday, December 14, 2002 4:02 PM
To: Turbine Users List
Subject: AW: Documentation update
Thanks, Quinton, that helped.
However there is another problem: torque generates two classes in all of
these files:
BaseTurbineUser.java
BaseTurbineUserPeer.java
BaseTurbineUserManager.java
For example, BaseTurbineUser.java contains both of these classes
public abstract class BaseTurbineUser extends
de.geoconnect.audiotex.om.TurbineUserAdapter
implements org.apache.turbine.om.Retrievable
and
public abstract class BaseTurbineUser extends BaseObject
implements org.apache.turbine.om.Retrievable
Apparently what happens is that Torque generates object TurbineUser two
times, first time from turbine-schema.xml, and second time from
project-schema.xml.
How did you got around this?
My schema looks like this:
<table name="TURBINE_USER" alias="AudiotexUser"
baseClass="de.geoconnect.audiotex.om.TurbineUserAdapter"
basePeer="de.geoconnect.audiotex.om.TurbineUserPeerAdapter">
<column name="USER_ID" primaryKey="true" required="true"
type="INTEGER"/>
</table>
<table name="KUNDE">
<column name="KUNDE_ID" primaryKey="true"
required="true" type="INTEGER"/>
<foreign-key foreignTable="TURBINE_USER">
<reference local="KUNDE_ID" foreign="USER_ID"/>
</foreign-key>
</table>
Marc
> -----Ursprungliche Nachricht-----
> Von: Quinton McCombs [mailto:[EMAIL PROTECTED]]
> Gesendet: Samstag, 14. Dezember 2002 22:25
> An: 'Turbine Users List'
> Betreff: RE: Documentation update
>
>
> My applogies. It should have been getTitle(). This is the attribute
> that, in the example, we are adding to Turbine User. Sorry, I guess
> that was another reference that I over looked when converted the code
> that I am using into the example.
>
> -----Original Message-----
> From: Marc Lustig [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, December 14, 2002 2:16 PM
> To: Turbine Users List
> Subject: AW: Documentation update
>
>
> Quinton, I tried out your Extend-User howto. I'm running into various
> problems, but first of all: you have this method in your
> TurbineMapBuilderAdapter
>
> public void doBuild() throws java.lang.Exception
> {
> super.doBuild();
>
> // Make dummy object - required for adding a column to the map
> Integer integer = new Integer(0);
>
> // Add extra User columns.
> TableMap tMap =
> Torque.getDatabaseMap().getTable(getTableUser());
> tMap.addColumn(getClientId(),integer);
> ^^^^^^^^^^^^
> }
>
> Problem is there is no method getCliendId() neither in
> TurbineMapBuilderAdapter nor in
> org.apache.turbine.util.db.map.TurbineMapBuilder.
>
> Could you please let me know how you implemented this method ? Thanks!
>
> Once, this is fixed all the other compilations errors might fade away.
>
> Marc
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>