2013-05-14 3 views
2

Я новичок в Hibernate, и у меня возникла проблема с его конфигурацией. Я пытаюсь установить соединение только для чтения с существующей базой данных Oracle. Я не хочу Hibernate для выполнения какого-либо DML/DDL и изменить схему базы данных, но каждый раз, когда я пытаюсь развернуть свой проект, это сообщение я вижу:Запретить изменения схемы спящего режима

INFO: updating schema 
SEVERE: Unsuccessful: create table WILLOEM.SAMPLE_INFO (SAMPLE_ID varchar2(255) not null, CELL_LINE varchar2(255), STUDY_ID varchar2(255), primary key (SAMPLE_ID)) 
SEVERE: ORA-00955: name is already used by an existing object 

Никаких повреждений не делаются здесь, так как таблицы создание завершилось неудачно, но я не хочу создавать ситуацию, когда данные могут быть потеряны. Как настроить Hibernate для работы только для чтения? Могу ли я предотвратить выполнение инструкции полностью, не добавляя нового пользователя Oracle, которому не хватает привилегий?

Вот моя текущая конфигурация Hibernate:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName"><value>oracle.jdbc.OracleDriver</value></property> 
    <property name="url"><value>jdbc:oracle:thin:@source.db.somewhere.com:1524:WILLOEM</value></property> 
    <property name="username"><value>username</value></property> 
    <property name="password"><value>password</value></property> 
</bean> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource"><ref local="dataSource"/></property> 
    <property name="packagesToScan" value="com.willoem.project.hibernate" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> 
      <prop key="hibernate.show_sql">true</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
     </props> 
    </property> 
</bean> 

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
    <property name="sessionFactory"><ref local="sessionFactory"/></property> 
</bean> 

ответ

4

можно изменить

<prop key="hibernate.hbm2ddl.auto">update</prop> 

в

<prop key="hibernate.hbm2ddl.auto">validate</prop> 

это проверяет схему, но она не будет делать какие-либо каких-либо изменений Это.

+0

Это сделало трюк, спасибо! – woemler

+0

приветствую :) – JustDanyul

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