Hi Andres,
Which version of Torque are u using? I'm currently running 3.1 and got below
exception when I use your solution:
org.apache.torque.TorqueException: Malformed column name in Criteria order
by: 'RAND() ASC' is not of the form 'table.column'
at
org.apache.torque.util.BasePeer.throwMalformedColumnNameException(BasePeer.j
ava:2591)
at org.apache.torque.util.BasePeer.createQuery(BasePeer.java:1242)
at org.apache.torque.util.BasePeer.createQueryString(BasePeer.java:984)
at org.apache.torque.util.BasePeer.doSelect(BasePeer.java:1391)
at org.apache.torque.util.BasePeer.doSelect(BasePeer.java:1368)
The above exception is throwed by below code in BasePeer.java. It is
expecting the orderby to in a column name format.
for (int i = 0; i < orderBy.size(); i++)
{
String orderByColumn = (String) orderBy.get(i);
if (orderByColumn.indexOf('.') == -1)
{
throwMalformedColumnNameException("order by",
orderByColumn);
}
String tableName =
orderByColumn.substring(0, orderByColumn.indexOf('.'));
Any recommendation? I understand your sql statement 'select *, rand() as rnd
from table order by rnd asc limit 2' will work but it seems the BasePeer is
enforcing the column name as the order by argument.
Thanks and regards,
William
-----Original Message-----
From: Andres Quijano - Rizonet [mailto:[EMAIL PROTECTED]
Sent: Monday, January 19, 2004 8:12 PM
To: 'Apache Torque Users List'
Subject: RE: Criteria question...
I use this to get a random row from a table:
Criteria crit = new Criteria();
crit.addAsColumn("rnd", "rand()");
crit.addAscendingOrderByColumn("rnd");
crit.setLimit(1);
YourTableNamePeer.doSelect(crit);
hope it helps
-----Original Message-----
From: William Wong [mailto:[EMAIL PROTECTED]
Sent: Domingo, 18 de Enero de 2004 10:32 p.m.
To: [EMAIL PROTECTED]
Subject: Criteria question...
Hi All,
Is there any easy way to convert below Mysql select statement into a
Criteria statement?
select * from name order by rand() limit 1;
Can I use Criteria.CUSTOM to achieve it?
Thank you in advance.
Regards,
William
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]