Hello, I faced similar problem, the trick to use following EJB QL: select distinct count(p.key) from Post as p where p.thread.forum.id=?1
notice count(p.key) - where key should be a property of CMP bean. I'm not sure if such syntax is required by EJB spec or simply a bug in geronimo/open-ejb. Regards, Milan. -----Original Message----- From: Kaeto23 [mailto:[EMAIL PROTECTED] Sent: Thursday, October 19, 2006 6:55 PM To: Geronimo ML Subject: ejbSelect tutorial? Hello, today I started to work on a CMP that also provides a ejbSelect for counting some contents from a database. Basically, a CMP named Post which should count how much entries exist in the database. Nothing so hard ;) Anyway, Geronimo has some trouble to use the EJB so I'd like to know WHAT is the problem :/ Here the code snippet that, when not commented out, makes the trouble: @XD5EjbSelectMethode(descr = "returns the number of entries", ejbQL = "select distinct count(p) from Post as p where p.thread.forum.id=?1") public abstract long ejbSelectForumPostsNum(long forumId) throws FinderException; Now XD5 creates the following deployment descriptor entries: ejb-jar.xml: ... <query> <description>returns the number of entries</description> <query-method> <method-name>ejbSelectForumPostsNum</method-name> <method-params> <method-param>long</method-param> </method-params> </query-method> <ejb-ql>select distinct count(p) from Post as p where p.thread.forum.id=?1</ejb-ql> </query> ... openejb-jar.xml ... <query> <query-method> <method-name>ejbSelectForumPostsNum</method-name> <method-params> <method-param>long</method-param> </method-params> </query-method> <group-name>Default</group-name> </query> ... If these lines are present, Geronimo will crash with this exception: Caused by: java.lang.ClassCastException: org.tranql.ql.EntityReference at org.tranql.ejbqlcompiler.PathTransformer$Context.<init>(PathTransformer. java:401) at org.tranql.ejbqlcompiler.PathTransformer$Context.<init>(PathTransformer. java:380) at org.tranql.ejbqlcompiler.PathTransformer.visit(PathTransformer.java:73) at org.tranql.ql.Query.visit(Query.java:59) at org.tranql.ejbqlcompiler.InterRepresentationTransformer.transform(InterR epresentationTransformer.java:41) at org.tranql.ejbqlcompiler.DerbyEJBQLCompilerFactory$DerbyEJBQLCompiler.tr ansform(DerbyEJBQLCompilerFactory.java:69) at org.tranql.sql.EJBQLToPhysicalQuery.expandToSQLQuery(EJBQLToPhysicalQuer y.java:243) at org.tranql.sql.EJBQLToPhysicalQuery.buildSelect(EJBQLToPhysicalQuery.jav a:171) at org.tranql.sql.EJBQLToPhysicalQuery.buildSelects(EJBQLToPhysicalQuery.ja va:109) at org.tranql.builder.SQLQueryBuilder.buildSelects(SQLQueryBuilder.java:204 ) at org.openejb.deployment.CMPContainerBuilder.buildIt(CMPContainerBuilder.j ava:311) at org.openejb.deployment.AbstractContainerBuilder.createConfiguration(Abst ractContainerBuilder.java:354) at org.openejb.deployment.CMPEntityBuilder.createBean(CMPEntityBuilder.java :213) So, basically, do you have some examples or tutorials that show the usage of ejbSelects with Geronimo 1.1.1? Let me know :) Best regards Dirk ___________________________________________________________ Der frhe Vogel fngt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
