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 Tue, 15 Mar 2005 19:00:02 GMT
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
>
class.ForName("fully.qualified.name.of.xxxBasePeer");
> before the delete. But ") is very improbable, as the
> Java Language
> specification explicitly states that a class is
> loaded immediately before
> you execute one of its static methods....
> 
> JLS 2.0 12.4.1--
> "A class or interface type T will be initialized
> immediately before the
> first occurrence of any one of the following:
> . T is a class and an instance of T is created.
> . T is a class and a static method declared by T is
> invoked.
> . A static field declared by T is assigned.
> . A static field declared by T is used and the
> reference to the field is
> not a compile-time constant (15.28). References to
> compile-time constants
> must be resolved at compile time to a copy of the
> compile-time constant
> value, so uses of such a field never cause
> initialization."
> 
> If you can solve this, I (and probably some more
> people on the list) would
> be very interested to know how this problem could
> originate.
> 
>       Thomas
> 
> 
> 
> 
> jcaserta@chubb.com schrieb am 14.03.2005 19:49:22:
> 
> >
> > Tom,
> >
> > Yes it does. In the tables MapBulder class it has
> the following:
> >
> > dbMap = Torque.getDatabaseMap("default");
> > dbMap.addTable("PMTEM021_POLOFFR");
> > TableMap tMap =
> dbMap.getTable("PMTEM021_POLOFFR");
> > tMap.setPrimaryKeyMethod("none");
> > tMap.addPrimaryKey("PMTEM021_POLOFFR.OFFRG_N", new
> String());
> >
> >
> 
> >
> 
> > >
> >
> >
> >
> 
> >              Thomas Fischer
> 
> >              <fischer@seitenba
> 
> >              u.net>
> To
> >                                        "Apache
> Torque Users List"
> 
> >              03/14/2005 10:44         
> <torque-user@db.apache.org>
> 
> >              AM
> cc
> >
> 
> >
> Subject
> >              Please respond to         RE:
> doDelete problem, null dbMap
> 
> >               "Apache Torque
> 
> >                 Users List"
> 
> >              <torque-user@db.a
> 
> >                 pache.org>
> 
> >
> 
> >
> 
> >
> >
> >
> >
> >
> >
> >
> >
> > Jim,
> >
> > if the db map is not null, but the column is not
> mapped, then I was
> > mistaken about the cause of the error, and
> class.forName() is of no use.
> >
> > Can you look at the map package
> (${target.package}.map), locate the Map
> > class for the Table, and see if it has got an
> entry for the column
> OFFRG_N
> > ?
> >
> 
=== 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