Hibernate報錯ORA-00904:無效標識符"PAY_TYPE_CODE"該如何解決?

Hibernate報錯ORA-00904:無效標識符"PAY_TYPE_CODE"該如何解決?

hibernate報錯:ORA-00904:無效標識符 (“pay_type_code”)

在Hibernate框架的項目開發中,經常會遇到ORA-00904錯誤,提示“pay_type_code”無效標識符。

問題根源

此錯誤通常由數據庫表字段命名引起。 數據庫表創建時,如果字段名使用了雙引號,oracle數據庫會將其視為關鍵字而非標識符。

解決方案

如果創建數據庫表時未使用雙引號,請檢查字段名是否與代碼中完全一致(大小寫敏感)。如果使用了雙引號,請嘗試以下方法:

  1. 使用@column注解: 在Hibernate實體類中,使用@Column注解顯式指定數據庫字段名,并在名稱兩側添加雙引號:
@Column(name = ""pay_type_code"") private String payTypeCode;
  1. 修改Hibernate配置文件: 修改Hibernate配置文件,強制Hibernate生成sql語句時使用與代碼中完全相同的物理名稱。 例如,在spring Boot應用中,可以修改application.properties或application.yml文件:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

通過以上方法,確保Hibernate生成的sql語句使用正確的字段名,從而解決ORA-00904錯誤。 選擇哪種方法取決于您的項目配置和偏好。 建議優先嘗試使用@Column注解,因為它更精準地控制數據庫映射。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享