首頁  >  文章  >  Java  >  Spring Boot JPA:為什麼我的列名註解被忽略?

Spring Boot JPA:為什麼我的列名註解被忽略?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 16:16:29714瀏覽

  Spring Boot   JPA: Why is my Column Name Annotation Ignored?

Spring Boot JPA 欄位名稱註解被忽略

當產生的SQL 中忽略列註解的指定名稱時,會出現此問題,導致使用預設約定(例如,蛇形大小寫)。

原因:

預設情況下,Spring Boot 使用與連接的資料庫對應的 Hibernate 方言,這可能會覆蓋列註解的名稱。在本例中,使用的是 SQL Server 方言,該方言使用蛇形命名法建立列。

解決方案:

要解決此問題並確保註解的列名稱使用時,可以透過在application.properties 檔案中明確設定下列屬性來覆寫預設命名策略:

spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

這些設定指定隱式命名策略應維護表和列名稱,如實體類,而實體命名策略應將列名轉換為資料庫的首選格式(例如,MS SQL Server的蛇形命名法)。

透過配置這些屬性,在產生的 SQL 中將尊重帶註釋的列名,允許更大的靈活性和對列命名的控制。

以上是Spring Boot JPA:為什麼我的列名註解被忽略?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn