在JPA 中對應具有保留關鍵字的實體欄位
無法直接對應名稱為JPA 中保留關鍵字的實體欄位可能會為應用程式開髮帶來障礙,尤其是在工作時使用嚴格執行語法規則的方言。然而,在 Hibernate 中作為 JPA 提供者有一個簡單的解決方案。
使用帶有反引號的識別碼轉義
要轉義保留關鍵字,請將它們括在 @ 中的反引號內列註釋。此函數繼承自Hibernate Core,支援基於SQL方言的正確引用樣式。對於 SQL Server,這表示使用方括號進行引用。
在 Hibernate 中作為 JPA 1.0 提供者:
@Column(name="`open`")
登入後複製
在 JPA 2.0 中:
@Column(name="\"open\"")
登入後複製
透過利用此通過這種方法,Hibernate確保在表格建立過程中正確引用保留關鍵字,從而防止像「open」遇到的問題
其他資源
- [Hibernate 參考指南] (https://docs.jboss.org/hibernate/orm/6.0/userguide/html_single /)
- [5.4。 SQL 引用識別碼](https://docs.jboss.org/hibernate/orm/6.0/userguide/html/identifiers.html#naming-sql-quoted-identifiers)
- [JPA 2.0 規範]( https ://jcp.org/en/jsr/detail?id=338)
- [2.13 資料庫命名物件](https://docs.oracle.com/javaee/7/api/javax/persistence/ metamodel/Attribute.html#getName--)
相關問題
- [Hibernate、MySQL 和名為「Repeat」的表- 奇怪行為](https://stackoverflow.com/questions/56279222/hibernate-mysql-and-table-named-repeat- strange-behaviour)
- [Hibernate表和的自動保留字轉義列](https://stackoverflow.com/questions/24237940/automatic-reserved-word-escaping-for-hibernate-tables-and-columns)
以上是如何使用保留關鍵字來對應 JPA 實體欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!