場景:MySQL 表字段名 usage 是保留字,Hibernate 生成 SQL 未轉義導致語法錯誤:
ERROR: You have an error in your SQL syntax near 'usage' at line 1
<hibernate-mapping>
<class name="com.entity.Test" table="test">
<id name="id" column="id"><generator class="native"/></id>
<!-- 關鍵:column 屬性值用反引號包裹 -->
<property name="usage" column="`usage`" type="string" length="1"/>
</class>
</hibernate-mapping>
` 為鍵盤左上角 ~ 鍵,**非單引號 '**。SELECT `usage` FROM test,MySQL 正確識別為標識符。"usage",PG 同)。| 策略 | 示例 | 優勢 |
|---|---|---|
後綴 _ | usage_, order_, group_ | 明確區分、不影響語義 |
| 前綴業務縮寫 | usr_usage, ord_order | 命名空間隔離、自文檔化 |
| 避開保留字表 | 建表前查閱 MySQL 保留字列表 | 源頭消除風險 |