在 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中文网其他相关文章!