I have run into the same problem before.  Here is a patch to
org.apache.torque.engine.database.model.Table that should fix the
problem for you:

Index: Table.java
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-torque/src/java/org/apache/torque/engine
/database/model/Table.java,v
retrieving revision 1.37
diff -u -r1.37 Table.java
--- Table.java  18 Dec 2002 13:56:04 -0000      1.37
+++ Table.java  21 Jan 2003 20:06:40 -0000
@@ -156,7 +156,7 @@
             javaNamingMethod =
getDatabase().getDefaultJavaNamingMethod();
         }
 
-        if ("null".equals(idMethod))
+        if ( idMethod == null )
         {
             idMethod = defaultIdMethod;
         }

> -----Original Message-----
> From: Ryan Clifton [mailto:[EMAIL PROTECTED]] 
> Sent: Tuesday, January 21, 2003 1:54 PM
> To: Turbine Users List
> Subject: RE: Using IDBroker with existing Oracle sequences
> 
> 
> I'm still using Oracle and I'm getting closer, but the 
> IDBroker is still causing me headaches.  Below I have a bunch 
> of relevant info about my set up.  Any ideas?  Thanks again!  -Ryan
> 
> Now when I call save() i get the following error:
> 
> org.apache.torque.TorqueException: IdGenerator for table 
> 'PERSON' is null
>         at org.apache.torque.util.BasePeer.doInsert(BasePeer.java:690)
>         ...
> 
> I have searched the mail archive and found that previous 
> people with this problem had the adapter set up incorrectly, 
> however my config for oracle is:
> 
> torque.database.default=ryan_test 
> torque.database.ryan_test.adapter=oracle
> 
> The following code throws the error (the first lines are to 
> verify that my connection is working.. it is):
> 
>         Person person1 = new Person();
>         person1 = PersonPeer.retrieveByPK(new NumberKey(1));
>         _log.info("Person1:" + person1.getfName());
> 
>         person1.setfName("Ryan");
>         person1.setlName("Clifton");
>         person1.setNew(true);
>         person1.setModified(true);
> -->     person1.save();
> 
> Here is what I get in the logs:
> 
> 931 [main] DEBUG torque.Torque  - Adding a dummy entry for 
> default, mapped onto ryan_test .1212 [Thread-3] DEBUG 
> oid.IDBroker  - IDBroker thread was started. 3846 [main] 
> DEBUG util.BasePeer  - SELECT PERSON.ID, PERSON.FNAME, 
> PERSON.LNAME FROM PERSON WHERE PERSON.ID=1 3876 [main] DEBUG 
> util.BasePeer  - Elapsed time=30 ms 4026 [main] INFO 
> testcase.TorqueTestCase  - Person1:com.win.core.dao.Person@1f
> E..
> Time: 3.074
> There was 1 error:
> 1) testPersonDBO(com.win.core.testcase.TorqueTestCase)
> org.apache.torque.TorqueException: IdGenerator for table 
> 'PERSON' is null
>         at org.apache.torque.util.BasePeer.doInsert(BasePeer.java:690)
>         at 
> com.win.core.dao.BasePersonPeer.doInsert(BasePersonPeer.java:216)
>         at 
> com.win.core.dao.BasePersonPeer.doInsert(BasePersonPeer.java:565)
>         at com.win.core.dao.BasePerson.save(BasePerson.java:695)
>         at com.win.core.dao.BasePerson.save(BasePerson.java:657)
>         at com.win.core.dao.BasePerson.save(BasePerson.java:637)
>         at 
> com.win.core.testcase.TorqueTestCase.testPersonDBO(TorqueTestCase.jav
> a:67)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
>         at 
> com.win.core.testcase.TorqueTestCase.main(TorqueTestCase.java:28)
> 
> FAILURES!!!
> Tests run: 3,  Failures: 0,  Errors: 1
> 
> -----Original Message-----
> From: Quinton McCombs [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, January 21, 2003 10:33 AM
> To: Turbine Users List
> Subject: RE: Using IDBroker with existing Oracle sequences
> 
> 
> Existing oracle sequences? Hmmm...  Torque picks the name of 
> the sequence to use for each table for you.  The format is 
> SEQ_<table_name>. You can get around this by creating 
> synonyms if you can't change the names but must still use them.
> 
> > -----Original Message-----
> > From: Ryan Clifton [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, January 21, 2003 12:17 PM
> > To: [EMAIL PROTECTED]
> > Subject: Using IDBroker with existing Oracle sequences
> > 
> > 
> > Hello,
> > 
> > I have recently installed the stand-alone Torque distribution
> > and have basically gotten everything working.. except one 
> > critical piece.  I can't for the life of me figure out how to 
> > get the IDBroker to link to my existing Oracle sequences and 
> > use them.  I've been searching the internet for a few hours 
> > and while I've seen plenty of people who say 'use the native 
> > setting on IDBroker', I've can't find any instructions on how 
> > to actually set it up.
> > 
> > If you could point me in the right direction or explain how
> > to go about doing what I want, I would really appreciate it.
> > 
> > Just to explain a bit more of where I am:
> > 
> > I used the 'jdbc' task to reverse my database into XML.  I
> > then generated my Torque java classes.  I can select existing 
> > records, so I know that my db connections are working.  When 
> > I insert, I currently get an error stating that the primary 
> > key is 'null'.  I was expecting the save() method to 
> > automatically fill this in.  I've read and figured out how to 
> > get around that by setting 'setNew(true)' and then it will go 
> > to the IDBroker.  Then I was thinking, how on earth will the 
> > IDBroker know where to go to get the sequence number?  So 
> > that's where I am..
> > 
> > Thanks!
> > 
> > Ryan Clifton
> > 
> > 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:turbine-user-> [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]>

Reply via email to