Return-Path: Delivered-To: apmail-db-torque-user-archive@www.apache.org Received: (qmail 92906 invoked from network); 17 Mar 2005 12:10:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 17 Mar 2005 12:10:58 -0000 Received: (qmail 7670 invoked by uid 500); 17 Mar 2005 12:10:56 -0000 Delivered-To: apmail-db-torque-user-archive@db.apache.org Received: (qmail 7646 invoked by uid 500); 17 Mar 2005 12:10:55 -0000 Mailing-List: contact torque-user-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Apache Torque Users List" Reply-To: "Apache Torque Users List" Delivered-To: mailing list torque-user@db.apache.org Received: (qmail 7632 invoked by uid 99); 17 Mar 2005 12:10:55 -0000 X-ASF-Spam-Status: No, hits=0.4 required=10.0 tests=DNS_FROM_RFC_ABUSE X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from web41402.mail.yahoo.com (HELO web41402.mail.yahoo.com) (66.218.93.68) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 17 Mar 2005 04:10:53 -0800 Received: (qmail 45963 invoked by uid 60001); 17 Mar 2005 12:10:52 -0000 Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; b=GIDJGJVeHH8Cb+6mIXWGOxyHGUIjJ18LAn7Q9aM3+nBN8NZj4je0SFLexT0otw1sAqsRt00gqqsFRb0Wvm5Q8mP5f2ZvgJbK9yTw7avnvyGRXO47fTuGnSrdPRGkD7Ul+sBJflME/7Tcr7P58xo8nvH4aLfCOEsKhcbfNb+WHbA= ; Message-ID: <20050317121052.45961.qmail@web41402.mail.yahoo.com> Received: from [12.20.43.1] by web41402.mail.yahoo.com via HTTP; Thu, 17 Mar 2005 04:10:52 PST Date: Thu, 17 Mar 2005 04:10:52 -0800 (PST) From: Jim Caserta Subject: RE: doDelete problem, null dbMap To: Apache Torque Users List In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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 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 s which have a different > structure. The generated > classes know which they belong to. Then, > in the runtime, you > can assign different connection-urls to the > different s. But as > the structure of the s" may differ, this > means that Torque has to > keep a dbMap for each . 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 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 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 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 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 > 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