openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fay Wang <fyw...@yahoo.com>
Subject Re: Could not locate metadata (orm.xml)
Date Tue, 01 Apr 2008 01:44:08 GMT
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 <lars.vogel@googlemail.com>
To: users@openjpa.apache.org; fyw300@yahoo.com
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 <fyw300@yahoo.com>: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 <lars.vogel@googlemail.com> wrote:
From: Lars Vogel <lars.vogel@googlemail.com>
Subject: Re: Could not locate metadata (orm.xml)
To: users@openjpa.apache.org
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 <lars.vogel@googlemail.com>:

>
> 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 <adam.sql@cyberspaceroad.org>:

> >
> > 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
Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message