> -----Original Message-----
> From: Marc Lustig [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, December 15, 2002 9:10 AM
> To: Turbine Users List
> Subject: more patches to Extending User update (was AW:
> Documentation update)
>
>
> Hi Quinton,
> it's good to understand finally that the Turbine* om-classes
> are not needed at all. They don't need to be generated, as
> Turbine uses the classes that come along with the
> org.apache.turbine package. It's a miracle to me why the
> turbine-schema.xml file has not been removed in the latest
> Turbine-release, or at least put into a separate dir to make
> clear it is not needed (or rather must not) to be generated
> for a project.
The turbine-schema.xml file, I think, is still used for the ant task to
create you database for you. I probably need to figure out how to keep
Torque from generating objects from it but still allow it to be used to
generate database schemas. I am assuming that you manually added the
column to TURBINE_USER in the database as I did.
>
> Anyway, in order for the om-classes to compile I needed to
> add the following changes to your patch:
>
> 1) TurbineUserAdapter.getUserId() must return int (not Integer)
>
> public int getUserId()
> {
> return ((NumberKey)getPrimaryKey()).intValue();
> //NOT: return new
> Integer(((NumberKey)getPrimaryKey()).intValue());
> }
>
> since the Base* classes expect int values, not Integer.
This is caused by the javaType of you extended user table definition. I
set the defaultJavaType in my database tag to "object". I think you are
using "primitive" which is the default. I use the other setting simply
because it is impossible to have a field defined as an int with a null
value. The same is true for other data types as well.
I will point out this possible variation in my how-to.
>
> 2) TurbineUserAdapter needs to implements method setPrimaryKey:
>
> public void setPrimaryKey(String key) {
> try {
> super.setPrimaryKey(key);
> }
> catch (Exception ex) {
> }
>
> since
> org.apache.torque.om.BaseObject:
> public void setPrimaryKey(java.lang.String primaryKey)
> throws java.lang.Exception
> ^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> This relates to the fact that Torque is still evolving
> whereas the Turbine Security System
> (org.apache.turbine.om.security.*) seems at stand still.
Thanks. I will look into this one.
>
> I will check tomorrow if this solution will work as it is
> supposed to do.
>
Please let me know how it works for you.
> Greetings
> Marc
>
>
> > -----Ursprungliche Nachricht-----
> > Von: Quinton McCombs [mailto:[EMAIL PROTECTED]]
> > Gesendet: Sonntag, 15. Dezember 2002 02:37
> > An: 'Turbine Users List'
> > Betreff: RE: Documentation update
> >
> >
> > 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]>
>
>
> --
> To
> unsubscribe, e-mail:
> <mailto:turbine-user-> [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]>