db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Caserta <smoothie...@yahoo.com>
Subject RE: doDelete problem, null dbMap
Date Thu, 17 Mar 2005 12:10:52 GMT
That's exactly it Thomas. I was setting the dbName
when I did not have to, which set up a different
dbMap. Thank you for all your help.

I'm trying to do inserts now and I'm getting an error
message that a Date field cannot be before 01/01/70. I
have never had this happen in version 3.0. 
Still trying to work that one out inbetween other
projects. I will have to check out the release notes
to see if there were changes to Date fields. 

Thanks!
Jim
--- Thomas Fischer <fischer@seitenbau.net> wrote:

> 
> 
> 
> 
> 
> Jim,
> 
> are you sure you used setDbName() correctly ? The
> setDbName() is for ther
> following scenario: In the schema.xml used by the
> generator, one can define
> different <database>s  which have a different
> structure. The generated
> classes know which <database> they belong to.  Then,
> in the runtime, you
> can assign different connection-urls to the
> different <database>s. But as
> the structure of the <database>s" may differ, this
> means that Torque has to
> keep a dbMap for each <database>. So if you set the
> dbName in criterion, it
> uses a different dbMap. If this map does not have
> the correct entries, the
> doDelete fails.
> 
> This scenario is different from the case where you
> have different databases
> (e.g. on different servers) with the same structure.
> For this, you have to
> provide different runtime properties, but you must
> not change the name of
> the database in the criteria.
> 
> In general, if you just have one <database> element
> in your schema.xml and
> just one database to connect to, you need not worry
> about the database name
> within the runtime.
> 
>    Thomas
> 
> 
> Jim Caserta <smoothie_jc@yahoo.com> schrieb am
> 16.03.2005 13:44:44:
> 
> > Thomas,
> >
> > I did some further looking at what I changed and
> > attempted to re-create the problem.
> > It appears that setting the DbName with the actual
> > HighLevel qualifier for the tables (was "default"
> > previously) wreaked havoc with the "tables"
> hashtable
> > in the dbMap (line commented out below) in the
> > criteria.
> >
> > I cannot explain it, but it happens consistently.
> >
> > criteria.add(TableNamePeer.OFFRG_N, primaryKey);
> > //criteria.setDbName(db2Schema);
> > TableNamePeer.doDelete(criteria, dbConn);
> >
> >
> > --- Thomas Fischer <fischer@seitenbau.net> wrote:
> >
> > >
> > >
> > >
> > >
> > >
> > > Jim,
> > >
> > > I still not understand the cause of the problem
> and
> > > your solution. What did
> > > you do to make the error do away ?
> > >
> > > Looking at the generated code, I do not see how
> > > accessing the static method
> > > of one table could possibly initialize or
> > > re-initialize the Map builder of
> > > another table.
> > >
> > >        Thomas
> > >
> > >
> > > Jim Caserta <smoothie_jc@yahoo.com> schrieb am
> > > 15.03.2005 20:00:02:
> > >
> > > > Thomas,
> > > >
> > > > You are right. It appears that by executing
> the
> > > > following:
> > > > BaseTABLENAMEPeer.executeStatement("SET
> CURRENT
> > > SQLID
> > > > = '" +
> > > > db2Schema...
> > > > for each of the tables that would have been
> > > deleted in
> > > > a Cascade Delete, it somehow re-initialized
> Tables
> > > in
> > > > the dbMap.
> > > >
> > > > Now all I have to do is get the Updates and
> > > Inserts
> > > > working..
> > > > Thanks for all your help!
> > > >
> > > > Jim
> > > >
> > > > --- Thomas Fischer <fischer@seitenbau.net>
> wrote:
> > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Jim,
> > > > >
> > > > > Sorry, I should have read your mail more
> > > cautiously;
> > > > > I was again
> > > > > mistaken...
> > > > > But nonetheless, I am still confused.
> > > > >
> > > > > There should be code in the generated
> > > xxxBasePeer
> > > > > class which looks like
> > > > >
> > > > >     public static MapBuilder
> > > getMapBuilder(String
> > > > > name)
> > > > >     {
> > > > >         try
> > > > >         {
> > > > >             MapBuilder mb = (MapBuilder)
> > > > > mapBuilders.get(name);
> > > > >             // Use the 'double-check
> pattern'
> > > for
> > > > > syncing
> > > > >             //  caching of the MapBuilder.
> > > > >             if (mb == null)
> > > > >             {
> > > > >                 synchronized (mapBuilders)
> > > > >                 {
> > > > >                     mb = (MapBuilder)
> > > > > mapBuilders.get(name);
> > > > >                     if (mb == null)
> > > > >                     {
> > > > >                         mb = (MapBuilder)
> > > > > Class.forName(name).newInstance();
> > > > >                         // Cache the
> MapBuilder
> > > > > before it is built.
> > > > >                        
> mapBuilders.put(name,
> > > mb);
> > > > >                     }
> > > > >                 }
> > > > >            }
> > > > >       ....
> > > > >
> > > > > This should cache the map builder in the
> dbMap.
> > > The
> > > > > method is called from
> > > > > the static initializer of the xxxBasePeer
> class,
> > > > > which should be called at
> > > > > the latest when you call xxxPeer.DoDelete().
> If
> > > you
> > > > > have the possibility to
> > > > > debug your code, you might want to put a
> > > breakpoint
> > > > > in there and see
> > > > > whether and when it it called.
> > > > >
> > > > > There are two reasons I can think of why the
> > > Table
> > > > > does not appear in the
> > > > > dbMap (there might be more)
> > > > > 1) Torque is not initialized or it is
> > > initialized
> > > > > more than once
> > > > > 2) For some obscure reason, the xxxBasePeer
> > > class is
> > > > > not loaded while you
> > > > > execute the doDelete().
> > > > >
> > > > > To exclude 2), you can force the classLoader
> to
> > > load
> > > > > the xxxBasePeer class
> > > > > by issuing
> > > > >
> 
=== message truncated ===



		
__________________________________ 
Do you Yahoo!? 
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/ 

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Mime
View raw message