Как я могу наследовать фильтры Hibernate с аннотациями? - PullRequest
3 голосов
/ 29 марта 2009

Я пытаюсь настроить фильтр Hibernate с аннотациями. Я хотел бы указать его в базовом классе и заставить его использовать все подклассы, но всякий раз, когда я пытаюсь включить его, Hibernate не может найти фильтр. Можно ли вообще наследовать аннотации фильтров?

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

Начиная с 3.5.0, это как минимум возможно для @MappedSuperclass. Не уверен, поможет ли это вам ... см .: ЧЧХ-4332

2 голосов
/ 29 марта 2009

Используете ли вы фильтр гибернации напрямую или расширяете фильтр гибернации для своих собственных целей? Аннотации по умолчанию не наследуются в Java, хотя, если вы сами писали аннотацию, и я предполагаю, что hibernate не делал этого в своих аннотациях, вы можете указать метааннотацию @Inherited в аннотации, чтобы она наследовалась. , Это работает только для аннотаций на уровне типа. Кроме того, некоторые люди пишут менеджер аннотаций для имитации полного наследования. Вы можете сделать что-то подобное, либо расширить механизм гибернации, либо написать препроцессор, который добавляет аннотации там, где они должны были быть унаследованы.

0 голосов
/ 30 марта 2009

То, что написал Джон Элинвуд, это именно тот случай. Вот почему @Filter необходимо указывать во всех подклассах, по крайней мере, в Hibernate Annotations 3.4.0-GA.

Кроме того, хотя это может быть неочевидным, вам потребуется одинаковая аннотация для всех сопоставленных коллекций этого класса, если вы ожидаете, что эти коллекции также будут подвержены фильтрации.

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