Hi Lars,

that is a weird error that I haven't seen before - it looks like OpenJPA is confusing the table name with the class name.

In case it helps, you don't need to reference the orm.xml in the persistence.xml. Not sure if it's a problem when you do, try without.

orm.xml looks like it's in the same directory as persistence.xml from your email. perhaps you should double-check.

my orm.xml header is slightly different:

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd";
  version="1.0">

I do not run the OpenJPA enhancer and you shouldn't need to, but I am using the OpenJPA v1.1.0 snapshot, not 1.0.x.




Lars Vogel on 30/03/08 19:29, wrote:
Hi,

Can anyone point me to a working standalone example there a a orm.xml file
is used instead of Annotations?

I'm able to build a small example with annotations but if I try the same
with orm.xml I receive the following error:

Exception in thread "main" <openjpa-1.0.2-r420667:627158 fatal user error>
org.apache.openjpa.persistence.ArgumentException: Could not locate metadata
for the class using alias "MYAPPLICATION.PEOPLETABLE". This could mean that
the OpenJPA enhancer or load-time weaver was not run on the type whose alias
is "MYAPPLICATION.PEOPLETABLE". Registered alias mappings: "{
MYAPPLICATION.PEOPLETABLE=null, Person=[class datamodel.Person]}"


I have the following orm.xml

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/ormorm_1_0.xsd";
    version="1.0">
    <entity class="datamodel.Person">
      <table name="MYAPPLICATION.PEOPLETABLE"/>
        <attributes>
            <id name="id" />
            <basic name="firstName" />
            <basic name="lastName" />
            <transient name="nonsenseField" />
        </attributes>
    </entity>
</entity-mappings>

I have the following persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<persistence xmlns="http://java.sun.com/xml/ns/persistence";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; version="1.0">

    <!--
        A persistence unit is a set of listed persistent entities as well
        the configuration of an EntityManagerFactory. We configure each
        example in a separate persistence-unit.
    -->
    <persistence-unit name="people" transaction-type="RESOURCE_LOCAL">

        <!--
            The default provider can be OpenJPA, or some other product.
            This element is optional if OpenJPA is the only JPA provider
            in the current classloading environment, but can be specified
            in cases where there are multiple JPA implementations available.
        -->

        <provider>
            org.apache.openjpa.persistence.PersistenceProviderImpl
        </provider>
        <mapping-file>META-INF/orm.xml</mapping-file>

        <!-- We must enumerate each entity in the persistence unit -->
        <class>datamodel.Person</class>

        <properties>
            <property name="openjpa.ConnectionURL"

value="jdbc:derby:C:/DerbyDatabases/hellojpa-database9;create=true" />
            <property name="openjpa.ConnectionDriverName"
                value="org.apache.derby.jdbc.EmbeddedDriver" />
            <property name="openjpa.ConnectionUserName" value="" />
            <property name="openjpa.ConnectionPassword" value="" />

            <!--
                Tell OpenJPA to automatically create tables in the database
                for entities. Note that this should be disabled when
                running against a production database, since you probably
                don't want to be altering the schema at runtime.
            -->
            <property name="openjpa.jdbc.SynchronizeMappings"
                value="buildSchema" />

        </properties>
    </persistence-unit>

</persistence>

Reply via email to