I have an entity class called “Group” and NetBeans warns me “The entity table name is a reserved Java Persistence QL keyword”.
A similar case would be the use of reserved SQL keywords.
Will this name be escaped? Would the use of a different table name solve the problem @Table(name=”otherName”). Or should I rename the class?
There is nothing in the JPA spec that says so, if your provider does, this is provider specific.
Obviously, it would (as long as you don’t use another reserved keyword of course). But if you are using a JPA 2.0 provider, there is a standard way to get a db object name escaped, with double quotes:
In JPA 1.0, there is nothing standard, it depends on your JPA provider. For example, Hibernate uses backticks:
No. The table name of an entity defaults to the entity name but you can control it using the
@Tableannotation as we saw. There is thus no need to change the class name of your entity.