Dain-

I've reproduced this problem and reported it at:

   https://issues.apache.org/jira/browse/OPENJPA-142

The only workaround is to add the @Entity(name="someAlias") annotation to the class in addition to specifying it in the orm.xml file.



On Feb 12, 2007, at 11:49 AM, Dain Sundstrom wrote:

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_AOBasicCm p2Bean],
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_ManyO wningSideBean],
**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_OneOwn ingSideBean],
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_OneIn verseSideBean],
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]}"


I kind of remember Patrick fixing a bug like this but I couldn't find the email.

-dain

Reply via email to