I'd appreciate some comments about what I could be doing wrong.  I am using 
build time enhancement.

Using openjpa v1.2.1.

maven property set to...
openjpa.jdbc.SynchronizeMappings = "buildSchema(ForeignKeys=true)"

<persistence xmlns="http://java.sun.com/xml/ns/persistence"; version="1.0">
  <persistence-unit name="acct">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
    <jta-data-source>acct</jta-data-source>
    <non-jta-data-source>acctUnmanaged</non-jta-data-source>
    <properties>
      <property name="openjpa.jdbc.SynchronizeMappings"
                value="${openjpa.jdbc.SynchronizeMappings}"/>
      <property name="openjpa.FlushBeforeQueries" value="false"/>
    </properties>
  </persistence-unit>
</persistence>

I have EntityStore.addEntityType() as follows...
    public void addEntityType(final LegalEntityType legalEntityType)
    {
        entityManager.persist(legalEntityType);
    }

LegalEntityType is nothing special...

@Entity
@Table(name = "legal_entity_types")
public class LegalEntityType implements Serializable
{
    @Id
    @Column(name = "entity_type")
    private String entityType;

    @Column(name = "entity_type_description")
    private String entityTypeDescription;
...
blah, blah, blah
}

I get the following error when using hsqldb v1.8.0.7 under openejb, but I do 
not get it when using an existing postgresql database that I had setup 
manually.  i.e. not using schema building.

Caused by: <openjpa-1.2.1-r752877:753278 nonfatal general error> 
org.apache.openjpa.persistence.PersistenceException: Table already exists: 
OPENJPA_SEQUENCE_TABLE in statement [CREATE TABLE OPENJPA_SEQUENCE_TABLE] 
{stmnt 77481349 CREATE TABLE OPENJPA_SEQUENCE_TABLE (ID TINYINT NOT NULL, 
SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID))} [code=-21, state=S0001]               
                                                                                
                          
        at 
org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553)           
                                                                   
        at 
org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)           
                                                                   
        at 
org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
                                                   
        at 
org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
                                                         
        at 
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
                                                          
        at 
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
                                                      
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
                                     
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
                                      
        at 
org.apache.openejb.persistence.JtaEntityManagerRegistry.getEntityManager(JtaEntityManagerRegistry.java:105)
                                        
        at 
org.apache.openejb.persistence.JtaEntityManager.getEntityManager(JtaEntityManager.java:61)
                                                         
        at 
org.apache.openejb.persistence.JtaEntityManager.persist(JtaEntityManager.java:97)
                                                                  
        at 
org.adamsbros.rmi.entities.EntityStore.addEntityType(EntityStore.java:90)       
                                                                   
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)          
                                                                              
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
        at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
        at org.adamsbros.rmi.Profiler.profile(Profiler.java:39)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:158)
        at 
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:141)
        at 
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:122)
        at 
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:221)
        at 
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:174)
        at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
        at 
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
        at 
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:281)
        ... 23 more
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Table already 
exists: OPENJPA_SEQUENCE_TABLE in statement [CREATE TABLE 
OPENJPA_SEQUENCE_TABLE] {stmnt 77481349 CREATE TABLE OPENJPA_SEQUENCE_TABLE (ID 
TINYINT NOT NULL, SEQUENCE_VALUE BIGINT, PRIMARY KEY (ID))} [code=-21, 
state=S0001]
        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$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:762)
        at 
org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:114)
        at 
org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1191)
        at 
org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949)
        at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526)
        at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
        at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321)
        at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:501)
        ... 53 more

Reply via email to