hey i have written a small program using opnenjpa to connect to mysql
server...
I am using Eclipse ide to do this. i keep getting this error....


HelloWorld.java
package foo;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class HelloWorld {
         private EntityManagerFactory emf;
         private EntityManager em;
         private String PERSISTENCE_UNIT_NAME = "projectjpa";
        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
             HelloWorld hello = new HelloWorld();
             hello.initEntityManager();
             hello.create();
             hello.read();
             hello.closeEntityManager();

        }

         private void initEntityManager() {
             emf = 
Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
             em = emf.createEntityManager();
         }

         private void closeEntityManager() {
             em.close();
             emf.close();
         }

         private void create() {
             em.getTransaction().begin();
             Greeting g_en = new Greeting("hello world", "en");
             Greeting g_es = new Greeting("hola, mundo", "es");
             Greeting[] greetings = new Greeting[]{g_en, g_es};
             for(Greeting g : greetings) {
                 em.persist(g);
             }
             em.getTransaction().commit();
         }

         private void read() {
             Greeting g = (Greeting) em.createQuery(
                     "select g from Greeting g where g.language = :language")
                     .setParameter("language", "en").getSingleResult();
             System.out.println("Query returned: " + g);
         }

}

Greeting.java
package foo;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Greeting implements Serializable {
         @Id @GeneratedValue private int id;
         @Basic private String message;
         @Basic private String language;

         public Greeting() {}
         public Greeting(String message, String language) {
             this.message = message;
             this.language = language;
         }

         public String toString() {
             return "Greeting id=" + id + ", message=" + message + ", 
language=" +
language;
         }
}

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";>
        <persistence-unit name="projectjpa">
        <class>foo.Greeting</class>
         <properties>
            <!--
                We can configure the default OpenJPA properties here. They
                happen to be commented out here since the provided examples
                all specify the values via System properties.
            -->

            
            <property name="openjpa.ConnectionURL" 
                value="jdbc:mysql://localhost:3306/greeting"/>
            <property name="openjpa.ConnectionDriverName" 
                value="com.mysql.jdbc.Driver"/>
            <property name="openjpa.ConnectionUserName" 
                value="root"/>
            <property name="openjpa.ConnectionPassword" 
                value="admin"/>
            <property name="openjpa.ddl-generation"
value="drop-and-create-tables"/>
        </properties>           
        </persistence-unit>
</persistence>


Stack trace
34  projectjpa  WARN   [main] openjpa.Runtime - The configuration property
named "openjpa.ddl-generation" was not recognized and will be ignored,
although the name closely matches a valid property called
"openjpa.ManagedRuntime".
134  projectjpa  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.1.0
361  projectjpa  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class
"org.apache.openjpa.jdbc.sql.MySQLDictionary".
1191  projectjpa  INFO   [main] openjpa.Enhance - Creating subclass for
"[class foo.Greeting]". This means that your application will be less
efficient and will consume more memory than it would if you ran the OpenJPA
enhancer. Additionally, lazy loading will not be available for one-to-one
and many-to-one persistent attributes in types using field access; they will
be loaded eagerly instead.
Exception in thread "main" <openjpa-1.1.0-r422266:657916 fatal store error>
org.apache.openjpa.persistence.RollbackException: Attempt to update the
sequence table "OPENJPA_SEQUENCE_TABLE" failed.  The sequence table is
typically created when you run the mappingtool's refresh action on any
datastore identity class. If you have not run the mappingtool but want to
create the sequence table, run:
java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add
        at
org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:523)
        at foo.HelloWorld.create(HelloWorld.java:41)
        at foo.HelloWorld.main(HelloWorld.java:17)
Caused by: <openjpa-1.1.0-r422266:657916 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: Attempt to update the
sequence table "OPENJPA_SEQUENCE_TABLE" failed.  The sequence table is
typically created when you run the mappingtool's refresh action on any
datastore identity class. If you have not run the mappingtool but want to
create the sequence table, run:
java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add
        at 
org.apache.openjpa.jdbc.sql.SQLExceptions.narrow(SQLExceptions.java:146)
        at
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4150)
        at
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
        at
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:80)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:371)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:266)
        at
org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60)
        at org.apache.openjpa.util.ImplHelper.generateValue(ImplHelper.java:160)
        at
org.apache.openjpa.util.ImplHelper.generateFieldValue(ImplHelper.java:144)
        at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignField(JDBCStoreManager.java:592)
        at 
org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:464)
        at 
org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:440)
        at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:576)
        at
org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134)
        at
org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:517)
        at
org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2814)
        at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39)
        at
org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:957)
        at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1945)
        at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1905)
        at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1823)
        at
org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
        at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1347)
        at
org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:877)
        at
org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:512)
        ... 2 more
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Table
'greeting.openjpa_sequence_table' doesn't exist {prepstmnt 25104891 SELECT
SEQUENCE_VALUE FROM OPENJPA_SEQUENCE_TABLE WHERE ID = ? FOR UPDATE
[params=(int) 0]} [code=1146, state=42S02]
        at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
        at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
        at
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:852)
        at
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:262)
        at
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:252)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.executeQuery(TableJDBCSeq.java:728)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.getSequence(TableJDBCSeq.java:470)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.setSequence(TableJDBCSeq.java:510)
        at
org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:368)
        ... 22 more

-- 
View this message in context: 
http://n2.nabble.com/Exception-in-thread-%22main%22-%3Copenjpa-1.1.0-r422266%3A657916-fatal-store-error%3E-tp662273p662273.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to