[ 
https://issues.apache.org/jira/browse/OPENJPA-142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ephemeris Lappis updated OPENJPA-142:
-------------------------------------

    Attachment: Tests-JPA-1.zip

A simple project with the same error :

30  my-persistence-unit-for-open-jpa  INFO   [main] openjpa.Runtime - Starting 
OpenJPA 0.9.7-incubating-SNAPSHOT
140  my-persistence-unit-for-open-jpa  INFO   [main] openjpa.jdbc.JDBC - Using 
dictionary class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
270  my-persistence-unit-for-open-jpa  INFO   [main] openjpa.MetaData - Found 3 
classes with metadata in 10 milliseconds.
Exception in thread "main" <4|true|0.9.7-incubating-SNAPSHOT> 
org.apache.openjpa.persistence.ArgumentException: Could not locate metadata for 
the class using alias "Person". Registered alias mappings: "{Person=null}"
        at 
org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:345)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:164)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:142)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:211)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:181)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:174)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$500(JPQLExpressionBuilder.java:61)
        at 
org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1668)
        at 
org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:52)
        at 
org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:145)
        at 
org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:644)
        at 
org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:625)
        at 
org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:591)
        at 
org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:653)
        at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1475)
        at 
org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:120)
        at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:214)
        at 
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:264)
        at my.jpa.one.Test.test(Test.java:34)
        at my.jpa.one.MainForOpenJPA.main(MainForOpenJPA.java:7)

> Entity name is ignored when specified in the orm.xml file
> ---------------------------------------------------------
>
>                 Key: OPENJPA-142
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-142
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>            Reporter: Marc Prud'hommeaux
>         Attachments: Tests-JPA-1.zip
>
>
> The XMLPersistenceMetaDataParser ignores the "name" attriburte of an "entity" 
> element, and instead always uses the default alias. For example, with the 
> following declaration in the orm.xml file:
>    <entity name="Foo" class="mypackage.Bar">
> the entity will be aliased to "Bar", rather than to "Foo".
> Original report by Dain Sundstrom on the open-jpa-dev mailing list:
> I'm using 0.9.6 and it appears the OpenJPA is ignoring the entity name when 
> processing queries.  In stead it seems to always choose the class name for 
> the schema name of the bean.  For example, I have the following bean declared 
> in my entity mappings:
>     <entity name="BasicCmp2Bean" 
> class="org.apache.openejb.test.entity.cmp.BasicCmp2Bean_BasicCmp2Bean">
>         <description>BasicCmp2Bean</description>
>         <attributes>
>             <id name="id"/>
>             <basic name="firstName"/>
>             <basic name="lastName"/>
>         </attributes>
>     </entity>
> The following query does not work:
>         SELECT o FROM BasicCmp2Bean o WHERE o.lastName = ?1
> But this one does:
>         SELECT o FROM BasicCmp2Bean_BasicCmp2Bean o WHERE o.lastName = ?1
> When the query fails, I get this message (reformatted a bit with ** added to 
> important entries):
> ERROR - The bean instances business method encountered a system exception: 
> Could not locate metadata for the class using alias "BasicCmp2Bean". 
> Registered alias mappings: "{
> AllowedOperationsCmp2Bean_AOBasicCmp2Bean=
>   [class 
> org.apache.openejb.test.entity.cmp.AllowedOperationsCmp2Bean_AOBasicCmp2Bean],
> AllowedOperationsCmpBean=
>   [class org.apache.openejb.test.entity.cmp.AllowedOperationsCmpBean],
> ContextLookupCmpBean=
>   [class org.apache.openejb.test.entity.cmp.ContextLookupCmpBean],
> Employee=
>   [class org.apache.openejb.test.entity.cmp2.Employee],
> ManyOwningSideBean_ManyOwningSideBean=
>   [class 
> org.apache.openejb.test.entity.cmr.cmrmapping.ManyOwningSideBean_ManyOwningSideBean],
> **BasicCmp2Bean_BasicCmp2Bean=
>   [class org.apache.openejb.test.entity.cmp.BasicCmp2Bean_BasicCmp2Bean],
> EncCmpBean=
>   [class org.apache.openejb.test.entity.cmp.EncCmpBean],
> BBean_OneToOneB=
>   [class org.apache.openejb.test.entity.cmr.onetoone.BBean_OneToOneB],
> OneOwningSideBean_OneOwningSideBean=
>   [class 
> org.apache.openejb.test.entity.cmr.cmrmapping.OneOwningSideBean_OneOwningSideBean],
> ABean_OneToOneA=
>   [class org.apache.openejb.test.entity.cmr.onetoone.ABean_OneToOneA],
> **BasicCmp2Bean=null,
> RmiIiopCmpBean=
>   [class org.apache.openejb.test.entity.cmp.RmiIiopCmpBean],
> ABean_OneToManyA=
>   [class org.apache.openejb.test.entity.cmr.onetomany.ABean_OneToManyA],
> OneInverseSideBean_OneInverseSideBean=
>   [class 
> org.apache.openejb.test.entity.cmr.cmrmapping.OneInverseSideBean_OneInverseSideBean],
> BBean_OneToManyB=
>   [class org.apache.openejb.test.entity.cmr.onetomany.BBean_OneToManyB],
> RmiIiopCmp2Bean_Cmp2_RMI_IIOP_Bean=
>   [class 
> org.apache.openejb.test.entity.cmp.RmiIiopCmp2Bean_Cmp2_RMI_IIOP_Bean],
> EncCmp2Bean_EncCmp2Bean=
>   [class org.apache.openejb.test.entity.cmp.EncCmp2Bean_EncCmp2Bean],
> BasicCmpBean=
>   [class org.apache.openejb.test.entity.cmp.BasicCmpBean]}"

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to