Будет ли экранировано это имя?
В спецификации JPA нет ничего , в котором говорится, что если это делает ваш поставщик, это зависит от поставщика.
Решит ли использование другого имени таблицы проблему @Table (name = "otherName")
Очевидно, что так и будет (если, конечно, вы не используете другое зарезервированное ключевое слово). Но если вы используете провайдера JPA 2.0, существует стандартный способ экранирования имени объекта БД с двойными кавычками:
@Table(name="\"Group\"")
В JPA 1.0 нет ничего стандартного, это зависит от вашего провайдера JPA. Например, Hibernate использует обратные метки:
@Table(name="`Group`")
Или я должен переименовать класс?
Нет. Имя таблицы сущности по умолчанию равно имени сущности, но вы можете управлять им, используя аннотацию @Table
, как мы видели. Таким образом, нет необходимости изменять имя класса вашей сущности.