You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle数据库@GeneratedValue(IDENTITY)无法自动生成ID的问题排查

Oracle + Spring Boot 本地@GeneratedValue(IDENTITY)失效排查方向
  • 检查Oracle数据库兼容性参数

    • 本地连接的Oracle实例需开启IDENTITY_COLUMN支持,确保compatible参数值为12.0.0或以上,执行SQL验证:
      SELECT name, value FROM v$parameter WHERE name = 'compatible';
      
    • 对比同事数据库的该参数值,确认是否一致。
  • 核对目标表结构

    • 确保表ODF_SMS_NTF的sms_ntf_id字段为自增列,执行SQL查看:
      SELECT column_name, identity_column FROM user_tab_columns WHERE table_name = 'ODF_SMS_NTF';
      
    • 若identity_column返回'NO',说明本地表未配置自增,需同步同事的表结构。
  • 验证Hibernate方言配置

    • 确认配置文件中Hibernate方言为Oracle 12c专用版本:
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle12cDialect
      
    • 避免使用不支持IDENTITY策略的旧版方言(如OracleDialect),检查本地配置是否与同事一致。
  • 清理IDEA缓存与重新构建

    • 执行File -> Invalidate Caches...并重启IDEA,清除本地编译缓存。
    • 执行Maven的Clean+Install命令,确保本地依赖与编译文件完全同步。
  • 排查OJDBC驱动版本冲突

    • 通过IDEA的Maven依赖树查看OJDBC实际加载版本,确认是OJDBC8且无其他版本驱动干扰。
    • 对比同事的依赖树,排除版本不一致问题。
  • 核对JPA全局配置

    • 检查spring.jpa.hibernate.ddl-auto配置,若本地设置为none或validate,需确认表结构已同步;若同事使用update,需排查是否因DDL自动更新差异导致表结构不同。
    • 检查是否存在自定义hibernate.cfg.xml等配置文件,覆盖了全局的IDENTITY策略相关设置。

内容的提问来源于stack exchange,提问作者M.KUL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:45:23