我有所谓的“集团”的实体类和NetBeans警告我“的实体表名是一个保留的Java Persistence QL关键字”。

一个类似的情况下将是使用保留SQL关键字。

此名称会被转义?将使用不同的表名称的解决问题@Table(name =“中文别名”)。或者我应该命名类?

有帮助吗?

解决方案

  

此名称会被转义?

有是什么在JPA规范是这么说的,如果您的提供商做,这是供应商特定的。

  

会使用不同的表名的解决问题@Table(名称=“中文别名”)

显然,这会(只要你不使用,当然另一个保留关键字)。但是,如果你使用的是JPA 2.0提供者,有获得一个数据库对象名逃脱的标准方式,用双引号:

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

在JPA 1.0,没有什么标准,这取决于您的JPA提供商。例如,Hibernate使用反引号:

@Table(name="`Group`")
  

或者我应该命名类?

没有。实体默认为实体名称的表名,但你可以使用@Table注解,因为我们看到了控制。因此,没有必要改变你的实体的类名。

其他提示

您不必重命名类 - 你不应该 - 您所选择的名称反映了最好的办法您的域名,你不应该改变它,因为工具或框架的限制,以防工具/框架提供了一种方式,以避免“冲突”。 JPA提供了这样的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top