EJB3NamingStrategy vs ImprovedNamingStrategy Именование внешнего ключа - PullRequest
5 голосов
/ 07 октября 2011

Моя стратегия именования в hibernate была по умолчанию: EJB3NamingStrategy.Таким образом, имена полей и таблиц были в верблюжьем регистре.Я переключил его на ImprovedNamingStrategy, чтобы иметь Snakecase.

Но мои внешние ключи не включают в себя имя первичного ключа ссылочной сущности в имени.

Пример:

table1: id name

С EJB3NamingStrategy поля table2 будут:

table2: id table1_id

, но с ImprovedNamingStrategy поля table2 будут: table2: id table1

Есть ли способ получить _id с помощью ImprovedNamingStrategy.Я не понимаю, почему hibernate ведет себя по-разному, потому что метод logicCollectionColumnName в обеих стратегиях идентичен.

Ответы [ 2 ]

4 голосов
/ 07 октября 2011

Расширьте ImproveNamingStrategy и настройте, возможно, первоначальная реализация ImprovedNamingStrategy ошиблась, а затем они не смогли это исправить, поскольку это нарушило бы обратную совместимость.

3 голосов
/ 07 ноября 2015

Эта проблема решена в весенней загрузке 1.2.7.RELEASE. Ссылка на эту тему также указана в документации по пакету jpa hibernate. Подпись класса выглядит следующим образом:

package org.springframework.boot.orm.jpa.hibernate;

public class SpringNamingStrategy extends ImprovedNamingStrategy {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...