4

私は 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

1 に答える 1