springboot 配置hibernate 开始使用的是mysql,都正常,但是换成Oracle后总是创建表。所以后台报如下表重复错误。这是为什么呀?应该是如果发现表已经有的话不应该再创建才对,请帮我看下哪里配置错了。
再详细说明下我的场景:
数据库映射的对象Product。 第一次系统启动肯定会创建一个,因为数据库中是没有这个表,然后系统重启或者再次启动,正常来讲,Product对象没有改过,数据库表也存在,hibernate不应该再创建,但是目前就是再创建,所以报表名已经有的错误。
Caused by: java.sql.SQLSyntaxErrorException: ORA-00955: 名称已由现有对象使用
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447) ~[ojdbc-6.6.0.jar:11.2.0.4.0]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) ~[ojdbc-6.6.0.jar:11.2.0.4.0]
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951) ~[ojdbc-6.6.0.jar:11.2.0.4.0]
server:
port: 8001
spring:
application:
name: DEMO_TEST #f服务名称定义
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
#driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动包
driver-class-name: oracle.jdbc.driver.OracleDriver
#url: jdbc:mysql://127.0.0.1:3306/rd_plm?serverTimezone=GMT%2B8 # 数据库名称
url: jdbc:oracle:thin:@127.0.0.1:1521/DD
username: root
password: root
dbcp2:
min-idle: 5 # 数据库连接池的最小维持连接数
initial-size: 5 # 初始化连接数
max-total: 5 # 最大连接数
max-wait-millis: 150 # 等待连接获取的最大超时时间
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
ddl-auto: update
show-sql: true
properties:
hibernate:
#dialect: org.hibernate.dialect.MariaDBDialect
dialect: org.hibernate.dialect.OracleDialect
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
#database: MYSQL
database: oracle
open-in-view: true