db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fischer <fisc...@seitenbau.net>
Subject RE: inefficient doDelete
Date Fri, 11 Mar 2005 16:25:27 GMT

"Husek, Paul" <Paul.Husek@pfizer.com> schrieb am 11.03.2005 17:01:45:

> I've been using Torque for almost a year now and am very happy with it.
> Recently though I found something that confuses me.
> All along I've been deleting all History books like:
> Criteria c=new Criteria();
> c.add(BookPeer.TYPE,"HISTORY");
> BookPeer.doDelete(c)
> And it works fine.  But recently I tried this when there over 100,000
> history books.   I was greeted with a java "out of memory" error.  Is
> trying to load all records before deleting each of them?

Yes, it does. Code form BasePeer.doDelete(Criteria criteria, Connection

if (tds.size() > 1 && criteria.isSingleRecord())
for (int j = 0; j < tds.size(); j++)
    Record rec = tds.getRecord(j);

> Why would it?

I am not sure about this. It seems than in its early days, Torque has
relied a lot on the village library and this is the way village handles
deletes. Not a convincing explanation,though. Perhaps some old Torque guru
can think of another reason...

> Is there a work around?

I can think of two things: either patch Torque or create the SQL yourself
and use executeStatement(String).
I will ask on the dev list if anybody can think of a reason why the records
are loaded before they are deleted. If nobody has a reason for it, chances
are good that it will be changed.


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

View raw message