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>