gpt4 book ai didi

java - 防止 Hibernate 架构更改

转载 作者:搜寻专家 更新时间:2023-11-01 01:53:53 26 4
gpt4 key购买 nike

我是 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>

最佳答案

你可以改变

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

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

这会验证架构,但不会对其进行任何更改。

关于java - 防止 Hibernate 架构更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16546588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com