Пакетный Hibernate NamingStrategy - PullRequest
       1

Пакетный Hibernate NamingStrategy

2 голосов
/ 22 ноября 2010

Учитывая несколько объектов Hibernate в разных пакетах большого приложения, я хотел бы убедиться, что нет конфликтов имен.Например, в пакете foo может быть Person -Entity, а в панели пакетов - еще один Person -Entity.

Теперь эти две сущности должны отображаться в имена таблиц следующим образом:

foo.Person --> FOO_PERSON
bar.Person --> BAR_PERSON

Я мог бы использовать аннотацию @ Table для достижения этой цели:

@Table(name="FOO_PERSON")
public class Person ...

@Table(name="BAR_PERSON")
public class Person ...

Однако я хотел бы использовать какой-то тип NamingStrategy, который делает это автоматически.Hibernate предлагает интерфейс org.hibernate.cfg.NamingStrategy.Я попытался расширить DefaultNamingStrategy, однако (несмотря на то, что в документации указано иное), вы получаете только неквалифицированное имя класса и, следовательно, никакой информации о имени пакета.

Существует проблема JIRA (http://opensource.atlassian.com/projects/hibernate/browse/HHH-4312) об этой проблеме. Учитывая, что она открыта с 2007 года, я ищу обходной путь или совершенно другой подход. Есть идеи?

1 Ответ

0 голосов
/ 03 декабря 2010

Если эти пакеты находятся в разных модулях проекта, вы можете попробовать поместить их в разные схемы.Таким образом, имена таблиц могут оказаться одинаковыми, и вам все равно.Просто мысль.

...