Hi All, Can some one please help me with the question in this thread.
Do you think this JIRA is valid ? (or) should I just live with the openJPA annotation ? Thanks, Ravi. Ravi P Palacherla wrote: > > Hi, > > Created a JIRA for this: > https://issues.apache.org/jira/browse/OPENJPA-1200 > > Regards, > Ravi. > > > Ravi P Palacherla wrote: >> >> Hi Mike, >> >> Please download the testcase from : >> http://n2.nabble.com/file/n3306514/openJPATestCase.zip >> openJPATestCase.zip >> >> The following changes are needed : >> build.xml ( point to proper "basedir" and "<path id="libs">" ) >> persistence.xml ( jdbc configurations.) >> >> Regards, >> Ravi. >> >> >> >> Michael Dick wrote: >>> >>> Hi Ravi, >>> >>> Could you upload the testcase you mentioned? This sounds like an >>> interesting >>> issue, not sure I have the full picture at the moment, but it might >>> warrant >>> a JIRA for further investigation. >>> >>> -mike >>> >>> On Wed, Jul 22, 2009 at 4:43 PM, rpalache >>> <[email protected]>wrote: >>> >>>> >>>> Hi , >>>> >>>> Here is the cause of the issue: >>>> >>>> getSelectSubclasses() of ValueMappingImpl.java is checking for >>>> criteria. >>>> >>>> "return (_criteria) ? Select.SUBS_JOINABLE >>>> : Select.SUBS_ANY_JOINABLE;" >>>> >>>> If criteria is selected then "Select.SUBS_JOINABLE" is returned which >>>> will >>>> generate a select statement that has subclass criteria ( in my E.g: >>>> t0.ITEM_TYPE = ? ) >>>> >>>> If criteria is not selected then "Select.SUBS_ANY_JOINABLE" is returned >>>> which will not generate the above condition. >>>> >>>> So the question is if we have to make Select.SUBS_JOINABLE the default >>>> behavior. >>>> >>>> I think throwing class cast exception is bad and hence the default >>>> behavior >>>> need to be changed to Select.SUBS_JOINABLE. >>>> >>>> Thanks in advance, >>>> Ravi. >>>> >>>> >>>> rpalache wrote: >>>> > >>>> > Hi All, >>>> > >>>> > I have an openJPA application with following entities: >>>> > >>>> > "Item" Entity with SINGLE_TABLE inheritance strategy. >>>> > DiscriminatorColumn on this ITEM_TYPE. >>>> > >>>> > "Book" and "Movie" entities extend "Item." >>>> > >>>> > "Artist" entity has 1-many relationship with "Book." >>>> > >>>> > The following results in classcastexception : >>>> > Artist artist = em.find(Artist.class, "Herman Hess"); >>>> > List<Book> books= artist.getBooks(); >>>> > >>>> > "artist.getBooks()" results in rows that contain both "Book" >>>> and"Movie" >>>> > hence I get the following classcast : >>>> > Exception in thread "main" java.lang.ClassCastException: >>>> > org.apache.openjpa.enhance.model$Movie$pcsubclass >>>> > >>>> > When I add @ElementClassCriteria to the Artist to Book relationship >>>> then >>>> > that resolves the issue. >>>> > @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, >>>> > mappedBy="artist") >>>> > @org.apache.openjpa.persistence.jdbc.ElementClassCriteria >>>> > public List<Book> books; >>>> > >>>> > The reason for this issue is : >>>> > without @ElementClassCriteria the SQL generated is : >>>> > SELECT t0.UID1, t0.ITEM_TYPE, t0.title, t0.PAGE_COUNT FROM ITEM t0 >>>> WHERE >>>> > t0.ARTIST = ? >>>> > [params=(String) Herman Hess] >>>> > >>>> > With @ElementClassCriteria the SQL generated is : >>>> > SELECT t0.UID1, t0.ITEM_TYPE, t0.title, t0.PAGE_COUNT FROM ITEM t0 >>>> WHERE >>>> > t0.ARTIST = ? AND t0.ITEM_TYPE = ? >>>> > [params=(String) Herman Hess, (String) BOOK] >>>> > >>>> > My questions regarding this is as follows: >>>> > >>>> > 1) @ElementClassCriteria is an openJPA specific annotation. Can I >>>> have a >>>> > JPA specific solution for this problem ? >>>> > >>>> > >>>> > 2) If I have a very big application(s) and lots of relations with the >>>> > above described behavior. >>>> > Then do I have to add it to each and every entity class that has >>>> the >>>> > relationship ? >>>> > Is there any property that I can define in the persistence.xml >>>> rather >>>> > than in entities ? >>>> > >>>> > I have a simple testcase demonstrating the issue. >>>> > I can upload it if needed. >>>> > >>>> > Regards, >>>> > Ravi. >>>> > >>>> > >>>> >>>> -- >>>> View this message in context: >>>> http://n2.nabble.com/ClasscastException-when-ClassCrietria-is-not-used.-tp3290568p3306077.html >>>> Sent from the OpenJPA Developers mailing list archive at Nabble.com. >>>> >>> >>> >> >> > > -- View this message in context: http://n2.nabble.com/ClasscastException-when-ClassCrietria-is-not-used.-tp3290568p3424734.html Sent from the OpenJPA Developers mailing list archive at Nabble.com.
