题
我有所谓的“集团”的实体类和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提供了这样的方法。
不隶属于 StackOverflow