2016-09-07 4 views
0

Я использую верблюд и открываю jpa как постоянный провайдер, но я не хочу, чтобы надписи выполнялись при приведении. Снимок persistence.xmlКак остановить постоянство от изменения базы данных, JPA

<persistence-unit name="camel-openjpa-oracle-alert" transaction-type="RESOURCE_LOCAL">    
. 
. 
<provider> 
      org.apache.openjpa.persistence.PersistenceProviderImpl 
     </provider> 
<properties> 
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=false)" /> 
</properties> 
. 
.  
</persistence-unit> 

Какое значение мы должны поставить для openjpa.jdbc.SynchronizeMappings, так что команда изменять не выполняются.

Я искал, но не смог найти такого значения.

ответ

1

Было бы неплохо узнать немного больше о том, что вы делаете, и почему вам нужно использовать SynchronizeMappings. Тот факт, что вы используете ForeignKeys = true, говорит мне, что вы хотите, чтобы OpenJPA прочитал вашу схему и определил, есть ли у вас какие-либо FK-коды базы данных (то есть, OpenJPA знает об этих FK, чтобы он мог правильно заказывать SQL для соблюдения ограничений FK родителя/ребенка). Это вполне допустимое использование SynchMappings. Однако, используя «buildSchema», вы определенно говорить OpenJPA сделать «схема базы данных соответствуют существующим отображениям» .... этот комментарий снят с этим OpenJPA документа:

http://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/ref_guide_mapping.html#ref_guide_mapping_synch

Таким образом, вы в частности, сообщать OpenJPA об обновлении схемы базы данных. Вы можете удалить «buildSchema», если вы не хотите, чтобы OpenJPA обновлял вашу схему в соответствии с моделью вашего домена. То есть, попробуйте:

Или вы можете использовать «Подтвердить» вместо «buildSchema» .... Однако, как выше состояний DOC, OpenJPA будет сгенерировано исключение, если он находит схемы/домен несоответствие, которое может быть не таким, каким вы хотите. Я предлагаю вам прочитать вышеупомянутый документ и посмотреть доступные варианты для вас.

Спасибо,

Хит Thomann

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

  • Нет связанных вопросов^_^