SELECT #result('COUNT(id)' 'Long' 'count')
from User #chain('AND' 'WHERE') #chunk($userId) id = #bind($userId) #end
#chunk($userName) userInfo.name LIKE $userName #end #end
becuase of "userInfo.name" which is object-style. So my first question is
whether there is a way of accomplishing this with EJBQL so I don't have to work with
joins there.
Yeah, something like this should work:
SELECT COUNT(a) FROM User a WHERE a.id = :userId AND a.userInfo.name like
:userName
Hi,
I played around with this a little bit and I have encountered 2 problems:
1) When 'id' is not object-mapped ejbql complains about invalid path, I
found only this
http://www.mail-archive.com/[email protected]/msg02992.html
and it seems to be a dead end. Foolish attempt prefixing with 'db:'
didn't work.
2) I thought null parameters were supported from 3.0 on, I'm using 3.0.1
and in the following ejbql query:
"SELECT COUNT(u) FROM User u WHERE u.username like :usernam AND
u.userInfo.name like :userName"
eq.setParameter("userName", null);
eq.setParameter("usernam", "msabo");
results in java.lang.ClassCastException:
org.apache.cayenne.ejbql.parser.EJBQLPatternValue cannot be cast to
org.apache.cayenne.ejbql.parser.EJBQLEquals
Regards,
--
Marek Šabo