【发布时间】:2010-10-16 05:30:00
【问题描述】:
我正在尝试设置带有注释的 Hibernate 过滤器。我想在基类中指定它并让所有子类都使用它,但是每当我尝试启用它时,Hibernate 都找不到过滤器。是否有可能继承过滤器注释?
【问题讨论】:
标签: java hibernate filter annotations
我正在尝试设置带有注释的 Hibernate 过滤器。我想在基类中指定它并让所有子类都使用它,但是每当我尝试启用它时,Hibernate 都找不到过滤器。是否有可能继承过滤器注释?
【问题讨论】:
标签: java hibernate filter annotations
自 3.5.0 起,@MappedSuperclass 至少是可能的。 不确定这是否对您有帮助...请参阅:HHH-4332
【讨论】:
您是直接使用休眠过滤器,还是出于自己的目的扩展休眠过滤器?默认情况下,Java 中不会继承注解,但如果您自己编写注解,并且我假设 hibernate 没有对其注解执行此操作,您可以在注解上指定 @Inherited 元注解以使其继承.不过,这只适用于类型级别的注释。另外,some people 编写一个注解管理器来模拟完全继承。你可以做类似的事情,要么扩展休眠机制,要么编写一个预处理器,在它们应该被继承的地方添加注释。
【讨论】:
John Ellinwood 所写的正是如此。这就是为什么需要在所有子类上指定 @Filter 的原因,至少在 Hibernate Annotations 3.4.0-GA 中是这样。
此外,尽管这可能不明显,但您需要对该类的所有映射集合使用相同的注释,如果您希望这些集合也容易受到过滤的话。
【讨论】: