Hi Tino, good question . . .
One would like to be able to override the createQueryString method of the XxxPeer class, but - alas! - it is a static method :-( The only solution I see is implement some additional methods in your XxxPeer class that do everything that's already in the BaseXxxPeer class, but with the modified select statement (please note that I have appended "ForUpdateNowait" to the method names): public static Xxx retrieveByPKForUpdateNowait(ObjectKey pk, Connection con) throws TorqueException, NoRowsException, TooManyRowsException { Criteria criteria = buildCriteria(pk); List v = doSelectForUpdateNowait(criteria, con); if (v.size() == 0) { throw new NoRowsException("Failed to select a row."); } else if (v.size() > 1) { throw new TooManyRowsException("Failed to select only one row."); } else { return (Xxx)v.get(0); } } public static List doSelectForUpdateNowait(Criteria criteria, Connection con) throws TorqueException { return populateObjects(doSelectForUpdateNowaitVillageRecords(criteria, con)); } public static List doSelectForUpdateNowaitVillageRecords(Criteria criteria, Connection con) throws TorqueException { if (criteria.getSelectColumns().size() == 0) { addSelectColumns(criteria); } // Set the correct dbName if it has not been overridden // criteria.getDbName will return the same object if not set to // another value so == check is okay and faster if (criteria.getDbName() == Torque.getDefaultDB()) { criteria.setDbName(DATABASE_NAME); } // BasePeer returns a List of Value (Village) arrays. The array // order follows the order columns were placed in the Select clause. // if (con == null) // { // return BasePeer.doSelect(criteria); // } // else // { // return BasePeer.doSelect(criteria, con); // } return BasePeer.executeQuery( createQueryString(criteria) + " FOR UPDATE NOWAIT", criteria.getOffset(), criteria.getLimit(), criteria.isSingleRecord(), con); } Please note that this code presumes you have a non-null Connection con when invoking retrieveByPKForUpdateNowait. I have not tested if this code actually works, but perhaps you've got the time to do this and report your experience back... Gruss Arne "Sperlich, Tino" wrote: Hi Arne, thanks for your replies. The nowait option really seems to be doing what is required: return if the row is blocked by smbd. else. excuse me if I keep asking, but how would I code that with Torque? Do I have to create a custom query or even raw sql? that would be the very last choice since then I would loose torque mapping db-stuff to my objects... I saw that in Hibernate the criteria object has the setQueryTimeout option, and I have also looked at the torque source and it seems to me that adding that to torque/village is quite an effort... Gruesse, Tino ********************************************************************** http://www.pta.de Mit 1006 Erfahrungsberichten aus 35 Jahren erfolgreicher Projektarbeit! ********************************************************************** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]