When I try to use a simple mapped super class with a trivial sub class (no fields or methods), I get the following exception:

ERROR - The bean instances business method encountered a system exception:org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetManagedFi eldCount()I java.lang.NoSuchMethodError: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetManagedFieldCount ()I at openejb.org.apache.openejb.test.entity.cmp.BasicCmpBean.<clinit> (Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
at org.apache.openjpa.meta.MetaDataRepository.classForName (MetaDataRepository.java:1224) at org.apache.openjpa.meta.MetaDataRepository.loadPersistentTypes (MetaDataRepository.java:1212) at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings (JDBCBrokerFactory.java:145) at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl (JDBCBrokerFactory.java:127) at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker (AbstractBrokerFactory.java:164) at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker (DelegatingBrokerFactory.java:139) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityMana ger(EntityManagerFactoryImpl.java:187) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityMana ger(EntityManagerFactoryImpl.java:52) at org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager (JtaEntityManagerRegistry.java:105)


Which seems to indicate to me that OpenJPA isn't enhancing the mapped super class. Does OpenJPA support mapped super classes?

Here is are my entity mappings:

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"; version="1.0"> <mapped-superclass class="org.apache.openejb.test.entity.cmp.BasicCmpBean">
        <attributes>
            <id name="primaryKey"/>
            <basic name="firstName"/>
            <basic name="lastName"/>
            <transient name="nextId"/>
            <transient name="ejbContext"/>
            <transient name="allowedOperationsTable"/>
        </attributes>
    </mapped-superclass>
<entity name="BasicCmpBean" class="openejb.org.apache.openejb.test.entity.cmp.BasicCmpBean">
        <description>BasicCmpBean</description>
        <attribute-override name="primaryKey">
            <column name="primaryKey"/>
        </attribute-override>
        <attribute-override name="firstName">
            <column name="firstName"/>
        </attribute-override>
        <attribute-override name="lastName">
            <column name="lastName"/>
        </attribute-override>
    </entity>
</entity-mappings>


Thanks for any help,

-dain

Reply via email to