Ah... I was using the binary releases of 0.9.8 from the Jakarta site.
Will try out the latest from CVS and try it again. I've rolled back to
.97 for now. Thanks for taking a look :)

Ryan

-----Original Message-----
From: Jakob Braeuchi [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, January 07, 2003 3:11 PM
To: OJB Users List
Subject: Re: 0.9.8: QueryBySQL broken on ORDER BY?

hi ryan,

i executed the following query without any problems:

Query query;
String sql;
System.out.println("\nread persons (*) with name like '%er'");
sql = "select * from tabPerson where name like '%er%' order by id";
query = new QueryBySQL(Person.class, sql);
broker.getCollectionByQuery(query);

producing this result:
1041973534906|16|0|statement||select * from tabPerson where name like
'%er%'
order by id

the sql-string is passed to the database without any modifications.

i used the latest from repository.
jakob


----- Original Message -----
From: "Ryan Vanderwerf" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Tuesday, January 07, 2003 6:00 PM
Subject: 0.9.8: QueryBySQL broken on ORDER BY?


I'm passing some manual SQL into the QueryBySQL class that worked in
0.9.7 that seems broken in 0.9.8 - it seems to be re-parsing my query
and turning it into a select count(*) from a select *. For example I
pass it the following SQL:
select * from MDP_V_USR_APP, MDP_ANSWERS A6_0 WHERE PENDING_FLAG = 'N'
AND CATALOG_FLAG = 'Y' AND ((APPLICATION_ID in  (select ENTITY_ID from
MDP_ANSWERS where FREEFORM like '%%' and ENTITY_TABLE_ID = 3)) or
APPLICATION_NAME like '%%' or APPLICATION_DESCRIPTION like '%%' or
FIRST_NAME like '%%' or LAST_NAME like '%%') AND
(A6_0.ENTITY_ID=APPLICATION_ID AND A6_0.ENTITY_TABLE_ID=3 AND
A6_0.POSSIBLE_ANSWER_ID=162) order by APPLICATION_NAME


Results in:
1041954266766|3|10|statement||select count(*) from MDP_V_USR_APP,
MDP_ANSWERS A6_0 WHERE PENDING_FLAG = 'N' AND CATALOG_FLAG = 'Y' AND
((APPLICATION_ID in  (select ENTITY_ID from MDP_ANSWERS where FREEFORM
like '%%' and ENTITY_TABLE_ID = 3)) or APPLICATION_NAME like '%%' or
APPLICATION_DESCRIPTION like '%%' or FIRST_NAME like '%%' or LAST_NAME
like '%%') AND (A6_0.ENTITY_ID=APPLICATION_ID AND A6_0.ENTITY_TABLE_ID=3
AND A6_0.POSSIBLE_ANSWER_ID=162) order by APPLICATION_NAME
which throws a nice sql exception of course, since why would you user
ORDER BY on a count.

In 0.9.7 it generates this (which works):
1041953920242|71|6|statement||select * from MDP_V_USR_APP, MDP_ANSWERS
A6_0 WHERE PENDING_FLAG = 'N' AND CATALOG_FLAG = 'Y' AND
((APPLICATION_ID in  (select ENTITY_ID from MDP_ANSWERS where FREEFORM
like '%%' and ENTITY_TABLE_ID = 3)) or APPLICATION_NAME like '%%' or
APPLICATION_DESCRIPTION like '%%' or FIRST_NAME like '%%' or LAST_NAME
like '%%') AND (A6_0.ENTITY_ID=APPLICATION_ID AND A6_0.ENTITY_TABLE_ID=3
AND A6_0.POSSIBLE_ANSWER_ID=162) order by APPLICATION_NAME

This is also happening in other places where I use that class and pass
in a  query with an ORDER BY.
Any ideas on what functionality changed in QueryBySQL between .97 and
.98?

Ryan



--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to