java - 如何在 JPA 和 Hibernate 的列名中使用空格

标签 java hibernate jpa orm hibernate-mapping

我在我的 java DAO 类中使用了它,它在 LANG PREF 之间包含空格

 @Column(name = "LANG PREF")
  private String langprefid;

一旦我的 java 类运行,我就会得到

org.hibernate.exception.SQLGrammarException: Incorrect syntax near the keyword 'as'.

谁能帮我解决这个问题?

最佳答案

手动转义保留关键字

如果您使用的是 Hibernate native API,则可以使用反引号对它们进行转义:

@Column(name = "`LANG PREF`")

如果你使用的是JPA,你可以用双引号转义:

@Column(name = "\"LANG PREF\"")

自动转义保留关键字

如果你想自动转义保留关键字,你可以将Hibernate-specific hibernate.globally_quoted_identifiers设置为true配置属性:

<property
    name="hibernate.globally_quoted_identifiers"
    value=true"
/>

关于java - 如何在 JPA 和 Hibernate 的列名中使用空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31239172/

相关文章:

java - TomEE : javax. servlet.ServletException : java. lang.NoClassDefFoundError : Could not initialize class javax. ws.rs.core.UriBuilder

java - 继承变量上的@ConfigurationProperties

java - 如何将模拟注入(inject)到距离测试类低两步的方法中

java - 如何删除 @ManyToMany 关联(加入的链接)而不删除实际的目标实体

java - Apache CXF 身份验证 + Spring Security

java - 如何在 Hibernate Java obj 中添加 @XmlTransient

java - 将 org.hibernate.jpa.HibernatePersistenceProvider 与 BoneCP 一起使用时遇到错误

java - Hibernate 父子映射

java - JPA @TableGenerator 在多个实体之间共享

java - 我可以在 JPA 2 的 native 查询中有多个语句吗