Younghae 2019-10-14 16:00 采纳率: 100%
浏览 660
已结题

springboot 配置hibernate 开始使用的是mysql,都正常,但是换成Oracle后总是创建表。

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
  • 写回答

3条回答 默认 最新

  • hxd_dsxy 2019-10-14 16:10
    关注

    ddl-auto:
    可选参数
    create 启动时删数据库中的表,然后创建,退出时不删除数据表
    create-drop 启动时删数据库中的表,然后创建,退出时删除数据表 如果表不存在报错
    update 如果启动时表格式不一致则更新表,原有数据保留
    validate 项目启动表结构进行校验 如果不一致则报错

    不要这个配置就可以不校验

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序