Hi Lars,
I unzip the file and ran it. I was able to run PCEnhancer but failed to
execute your Main.java for the following error message:
Exception in thread "main" <openjpa-1.1.0-SNAPSHOT-runknown nonfatal user error>
org.apache.openjpa.persistence.ArgumentException: An error occurred while parsi
ng the query filter "select m from MYAPPLICATION.PEOPLETABLE m". Error message:
The name "MYAPPLICATION.PEOPLETABLE" is not a recognized entity or identifier. P
erhaps you meant Person, which is a close match. Known entity names: [Person]
I then changed your query in Main.java to:
Query q = em.createQuery("select m from Person m");
It then works fine. The attached is my run.bat to set classpath, compile entity
classes, and run PCEnhancer, and execute Main.java.
-Fay
----- Original Message ----
From: Lars Vogel <[EMAIL PROTECTED]>
To: [email protected]; [EMAIL PROTECTED]
Sent: Monday, March 31, 2008 3:09:14 PM
Subject: Re: Could not locate metadata (orm.xml)
Hi Fay,
yes both are in the same directory. I tried with and without mapping entry in
persistence. For reference I attached the content of my source directory. It is
a very tiny example
If someone wants to test this, please run Main.java.
Best regards, Lars
2008/3/31, Fay Wang <[EMAIL PROTECTED]>:Hi Lars,
I ran your example as a standalone one. and the PCEnhancer works for me.
Here is my persistence.xml:
<persistence-unit name="person">
<provider>com.ibm.websphere.persistence.PersistenceProviderImpl</provider>
<mapping-file>META-INF/orm.xml</mapping-file>
<class>datamodel.Person</class>
<properties>
<property name="openjpa.jdbc.DBDictionary" value=""/>
...
and my 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>
They are almost identical as yours. Did you put your orm.xml in the same
directory as your persistence.xml?
Fay
--- On Mon, 3/31/08, Lars Vogel <[EMAIL PROTECTED]> wrote:
From: Lars Vogel <[EMAIL PROTECTED]>
Subject: Re: Could not locate metadata (orm.xml)
To: [email protected]
Date: Monday, March 31, 2008, 9:46 AM
Hi Fay,
I don't get the meaining of your comment. Are you saying my example works
for you? Are you running it standalone or inside a web container? Best
regards, Lars
2008/3/31, Lars Vogel <[EMAIL PROTECTED]>:
>
> Hi Adam,
>
> thank you. If I remove the <mapping-file> I still get the same
error. I
> change the header to your header but still no difference. I paste the new
> version of my files below.
>
> Both orm.xml and persistence.xml are in the same directory META-INF.
>
>
Any further advice?
> --------------
>
> <?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">
> <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>
>
> <?xml version="1.0" encoding="UTF-8"?>
> ---------------
>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
>
> <persistence-unit name="people"
transaction-type="RESOURCE_LOCAL">
>
> <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="" />
>
> <!--
> Automatically create tables in the database
> for entities. Not for production use
> -->
> <property name="openjpa.jdbc.SynchronizeMappings"
> value="buildSchema" />
>
> </properties>
> </persistence-unit>
>
> </persistence>
>
>
>
>
> Best regards, Lars
>
>
> 2008/3/31, Adam Hardy <[EMAIL PROTECTED]>:
> >
> > 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.xmlfile
> > > 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>
> >
> >
>
Like movies? Here's a limited-time offer: Blockbuster Total Access for
one month at no cost.
____________________________________________________________________________________
Special deal for Yahoo! users & friends - No Cost. Get a month of Blockbuster
Total Access now
http://tc.deals.yahoo.com/tc/blockbuster/text3.com