Thanks Jason. For some reason this distinction was not clear from my earlier reading of EJB 2.0 features.
-javier Robertson, Jason wrote: > A finder method that returns multiple entity objects can only return a > java.util.Collection. If you want to guarantee no duplicates are returned, > you must use the DISTINCT keyword. > > A select method, however, can return java.util.Collection or java.util.Set. > If you specify java.util.Set then the DISTINCT is implied if it's not there > (but it's probably good form to have it there!). > > Check the EJB 2.0 Spec sections 10.5.6.2 and 10.5.7.2. > > Jason > > -----Original Message----- > From: Javier A. Soltero [mailto:[EMAIL PROTECTED]] > Sent: Monday, July 15, 2002 2:54 PM > To: [EMAIL PROTECTED] > Subject: [JBoss-user] problems with finders returning java.util.Set > > > Hi, > > [using 3.0.1 RC1] > I have defined finders in my bean which return java.util.Set. When I try > a unit test to verify that the finder works correctly, I get a class > cast exception thrown which suggests that the return type of the finder > is really an ArrayList instead of something which implements Set. > > Here's the finder as it is declared in ejb-jar.xml: > > <query> > <query-method> > <method-name>findAll</method-name> > <method-params> > </method-params> > </query-method> > <result-type-mapping>Local</result-type-mapping> > <ejb-ql><![CDATA[SELECT OBJECT(platform) FROM Platform AS > platform]]></ejb-ql> > > Here's the stack from the client (cactus-test) side: > > [junit] Testcase: test_FindAll took 0.103 sec > [junit] Caused an ERROR > [junit] java.util.ArrayList > [junit] java.lang.ClassCastException: java.util.ArrayList > [junit] at $Proxy198.findAll(Unknown Source) > [junit] at > net.covalent.spider.appdef.server.entity.test.PlatformEJB_test.test_FindAll( > PlatformEJB_test.java:127) > [junit] at > org.apache.cactus.AbstractTestCase.runServerTest(AbstractTestCase.java:524) > [junit] at > org.apache.cactus.AbstractTestCase.runBareServerTest(AbstractTestCase.java:4 > 90) > [junit] at > org.apache.cactus.server.AbstractTestCaller.doTest(AbstractTestCaller.java:1 > 48) > [junit] at > org.apache.cactus.server.AbstractTestController.dispatch79_handleRequest(Abs > tractTestController.java;org/apache/cactus/util/log/LogAspect.java(1k):123) > [junit] at > org.apache.cactus.server.AbstractTestController.around79_handleRequest(Abstr > actTestController.java;org/apache/cactus/util/log/LogAspect.java(1k):1140) > [junit] at > org.apache.cactus.server.AbstractTestController.handleRequest(AbstractTestCo > ntroller.java;org/apache/cactus/util/log/LogAspect.java(1k):101) > [junit] at > org.apache.cactus.server.ServletTestRedirector.dispatch88_doPost(ServletTest > Redirector.java;org/apache/cactus/util/log/LogAspect.java(1k):132) > [junit] at > org.apache.cactus.server.ServletTestRedirector.around88_doPost(ServletTestRe > director.java;org/apache/cactus/util/log/LogAspect.java(1k):1140) > [junit] at > org.apache.cactus.server.ServletTestRedirector.doPost(ServletTestRedirector. > java;org/apache/cactus/util/log/LogAspect.java(1k):118) > > > > Any help greatly appreciated. I have other finders which are defined to > return Sets and they all fail in a similar way, I'm about to try to > redefine them to return collections, but I'd rather not. > > I also just noticed that I lack the "DISTINCT" ejb-ql keyword in my > select, but I was under the impression that this was not required. > > thanks, > > -javier > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user > ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
