Hello,

OK, I tried your way now and at least Geronimo keeps talking to me. The
stacktrace now reads as follows:

Caused by: org.tranql.ql.QueryException: Select [Select
method=[ejbSelectForumPostsNum]; EJB-QL=[select distinct count(p.id)
from Post as p where p.thread.forum.id=?1]] does not return a EJB and
defines the prefetch group [Default].
        at
org.tranql.builder.SQLQueryBuilder.buildSelects(SQLQueryBuilder.java:224)
        at
org.openejb.deployment.CMPContainerBuilder.buildIt(CMPContainerBuilder.java:311)
        at
org.openejb.deployment.AbstractContainerBuilder.createConfiguration(AbstractContainerBuilder.java:354)
        at
org.openejb.deployment.CMPEntityBuilder.createBean(CMPEntityBuilder.java:213)
        ... 32 more


It seems Geronimo wants a EJB in return. Counting is still a problem ;)

I just consider to switch to JOnAS or JBoss ;)

Milan: how did you count the EJBs? Do you also use the "Default"
prefetch group (only the CMP fields are loaded instead of CMP+CMR)?

Best regards

Dirk


Unger, Milan schrieb:
> 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
> 

-- 
Kaeto23

HTTP: http://kaeto23.dnsalias.com (german!)
Jabber: jabber://[EMAIL PROTECTED]/DS2

Reclaim Your Inbox!
http://www.mozilla.org/products/thunderbird/

        

        
                
___________________________________________________________ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: 
http://mail.yahoo.de

Reply via email to