2016-12-21 3 views
1

Hibernate все еще игнорирует аннотацию имени @Table? Все мои таблицы называются в стратегии CamelCase. Есть ли способ использовать аннотации или мне нужно написать свою собственную стратегию именования?Hibernate 5 по-прежнему игнорирует аннотацию @Table для поиска таблиц

+1

, что вы имеете в виду, что не находит их? Используете ли вы базу данных, чувствительную к регистру на имени таблицы? так что используйте @Table ('\ "MyTableName \" ") – Walfrat

+0

Я использую PostgreSQL в качестве базы данных. – CPA

+0

Я собираю Spring, устанавливает некоторую« стратегию именования »и в основном противоречит тому, что спецификация JPA определяет для имен таблиц и столбцов. на этом сайте вы найдете других с этим. Использование других поставщиков JPA позволяет избежать этой проблемы или вручную установить это свойство для Hibernate –

ответ

1

Согласно JSR 338, JPA 2.1

Чтобы указать идентификаторы с разделителями, один из следующих подходов должны быть использованы:

• Можно указать, что все идентификаторы базы данных в использовании для единицы сохранения будет обрабатываются как идентификаторы с разделителями, указывая элемент в элементе элемента persistence-unit по умолчанию файла сопоставления объектно-реляционного xml-файла. Если указан элемент <delimited-identifiers/>, его нельзя переопределить.

• Можно указать для каждого имени, что имя для объекта базы данных должно интерпретироваться как разделительный идентификатор следующим образом: • Используя аннотации, имя указывается как идентификатор с разделителями, имя в двойные кавычки, причем спасшиеся внутренние кавычки, например, @Table(name="\"customer\""). • При использовании XML, указывается имя в качестве разделителями идентификатора путем использования двойных кавычек, например, <table name="&quot;customer&quot;"/>

Смежные вопросы