2014-10-24 4 views
1

Я недавно перенесен на использование пружинного каркаса для DI - работает отлично. Я ввожу менеджера персистентности, который также отлично работает. На новой установке я получаю:autocreate schema с jdo, spring и H2 с datanucleus

SEVERE: Required table missing .... Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables" 

Справедливо, что я не могу использовать таблицы автосоздания.

Я создаю мой настойчивость менеджера, как это в весеннем context.xml согласно документу:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <property name="driverClassName" value="org.h2.Driver"/> 
     <property name="url" value="jdbc:h2:./thedbpath.db;MV_STORE=FALSE;MVCC=FALSE;FILE_LOCK=NO"/> 
     <property name="username" value=""/> 
     <property name="password" value=""/> 

    </bean> 

    <bean id="pmf" class="org.datanucleus.api.jdo.JDOPersistenceManagerFactory" destroy-method="close"> 
     <property name="connectionFactory" ref="dataSource"/> 
     <property name="nontransactionalRead" value="true"/> 

    </bean> 

все работает - но я не могу понять, где установить datanucleus.autoCreateTables

Это обычно будет установлен в файле persistence.xml - я не вижу, куда помещать свойства datanucleus в spring.xml. Заранее спасибо

редактировать: благодаря ниже ответ, это был правильный конфиг:

<bean id="pmf" class="org.springframework.orm.jdo.LocalPersistenceManagerFactoryBean"> 
     <property name="jdoProperties"> 
      <props> 
       <prop key="javax.jdo.PersistenceManagerFactoryClass"> 
        org.datanucleus.api.jdo.JDOPersistenceManagerFactory 
       </prop> 
       <prop key="javax.jdo.option.ConnectionURL">jdbc:h2:./database/db;MV_STORE=FALSE;MVCC=FALSE;;FILE_LOCK=NO</prop> 
       <prop key="javax.jdo.option.ConnectionUserName">sa</prop> 
       <prop key="javax.jdo.option.ConnectionPassword"></prop> 
       <prop key="javax.jdo.option.ConnectionDriverName">org.h2.Driver</prop> 
       <prop key="org.jpox.autoCreateSchema">true</prop> 
       <prop key="org.jpox.identifier.case">PreserveCase</prop> 
       <prop key="datanucleus.autoCreateTables">true</prop> 
      </props> 
     </property> 
    </bean> 

ответ

1

Эта страница http://www.datanucleus.org/products/accessplatform_3_0/guides/jdo/springframework/index.html имеет свойство «jdoProperties», который может быть использован для указания JDO реализации- специфические свойства. Может, попробуй?

+0

спасибо Нейл - документ выше немного устарел, но образец внизу дал мне правильную конфигурацию. Я обновил свой пост и принял это как ответ. – bsautner

Смежные вопросы