geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kaeto23 <kaet...@yahoo.de>
Subject Re: ejbSelect tutorial?
Date Fri, 20 Oct 2006 11:36:44 GMT
Hello,

ok, I have more ejb qls that make OpenEJB fail ;)

Have this one:

@XD5EjbSelectMethode(descr = "returns all users that have the
appropriate right", ejbQL = "select distinct r.user from ForumRoll r
where r.userRoll.id=?1 order by r.user.username asc")
public abstract Collection<UserLocal> ejbSelectForumsuserByRoll(int
rechteId);

Compiling this ejbSelect ends in this:

Caused by: java.lang.IllegalArgumentException: fromIndex(0) > toIndex(-1)
	at java.util.SubList.<init>(AbstractList.java:707)
	at java.util.AbstractList.subList(AbstractList.java:570)
	at
org.tranql.ejbqlcompiler.PathTransformer$Context.<init>(PathTransformer.java:423)
	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(InterRepresentationTransformer.java:41)
	at
org.tranql.ejbqlcompiler.DerbyEJBQLCompilerFactory$DerbyEJBQLCompiler.transform(DerbyEJBQLCompilerFactory.java:69)
	at
org.tranql.sql.EJBQLToPhysicalQuery.expandToSQLQuery(EJBQLToPhysicalQuery.java:243)
	at
org.tranql.sql.EJBQLToPhysicalQuery.buildView(EJBQLToPhysicalQuery.java:198)
	at
org.tranql.sql.EJBQLToPhysicalQuery.buildSelect(EJBQLToPhysicalQuery.java:161)
	at
org.tranql.sql.EJBQLToPhysicalQuery.buildSelects(EJBQLToPhysicalQuery.java:109)
	at
org.tranql.builder.SQLQueryBuilder.buildSelects(SQLQueryBuilder.java:204)
	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)


What does Geronimo (TranQL) wants to tell me?

I'll try the count clause now. Thanks Milan for providing this "fix" :P

Best regards

Dirk


Gianny Damour schrieb:
> Hello,
> 
> Thanks for having provided this work around Milan. This is a bug in the
> processing of the COUNT aggregation function: the code assumes that the
> content of a COUNT is always a path expression and does not handle the
> case where only an entity is provided.
> 
> Thanks,
> Gianny
> 
> 
> On 20/10/2006, at 6:04 PM, Unger, Milan wrote:
> 
>> 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:kaeto23@yahoo.de]
>> 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://kaeto23@jabber.ds2/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

Mime
View raw message