java - 在 JPA 中使用保留的 JPQL 关键字

标签 java orm jpa jakarta-ee jpql

我有一个名为“Group”的实体类,NetBeans 警告我“实体表名称是保留的 Java Persistence QL 关键字”。

类似的情况是使用保留的 SQL 关键字。

这个名字会被转义吗?使用不同的表名是否可以解决问题@Table(name="otherName")。还是我应该重命名类(class)?

最佳答案

Will this name be escaped?

JPA 规范中没有这样说,如果您的提供者这样做,那是特定于提供者的。

Would the use of a different table name solve the problem @Table(name="otherName")

显然,它会(当然只要您不使用其他保留关键字)。但是,如果您使用的是 JPA 2.0 提供程序,则有一种标准方法可以使用双引号转义 db 对象名称:

@Table(name="\"Group\"")

在 JPA 1.0 中,没有任何标准,它取决于您的 JPA 提供者。例如,Hibernate 使用反引号:

@Table(name="`Group`")

Or should I rename the class?

没有。实体的表名称默认为实体名称,但您可以使用我们看到的 @Table 注释来控制它。因此无需更改实体的类名。

关于java - 在 JPA 中使用保留的 JPQL 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153881/

相关文章:

java - 在 ToolTipText 上使用图标

java - 如果数组中的所有值都相同,如何打印字符串

java - 在非root用户下启动tomcat 9

jpa - 如何在 JUnit 中正确使用 Bean 验证 (JSR-303)?

java - 关于新对象

C# 动态映射输入文件的方法

oop - ORM 是一种反模式吗?

NHibernate 还是 Fluent NHibernate?

java - 如何在 Play JPA 中保存对象列表

javax.persistence.TransactionRequiredException : No EntityManager with actual transaction available for current thread