繁体   English   中英

如何在继承的类上覆盖休眠 JPA 过滤器?

[英]How to override hibernate JPA filter on inherited class?

我正在使用休眠 JPA。

我有一个BasePersonnel类作为具有filter超类:

@Entity
@Table(name = "APP_PERSONEL")
@Filters({
    @Filter(name = "authorize", 
            condition = " 1 = 1 ")
})
public class BasePersonel extends BaseEntity<Integer> {
    ...
}

它有一个子类:

@Entity
@Table(name = "RTS_PERSONNEL")
@Filters({
    @Filter(name = "authorize",
            condition = " 2 = 2 ")
})
public class Personnel extends BasePersonel {
    ...
}

当我使用 hql 在Personnel类上运行查询时,两个过滤器(即超类的过滤器和子类的过滤器)都附加到where子句。 但我只想将子类过滤器附加到where子句。

有什么解决方案可以覆盖超类过滤器吗?

您可以在映射实体时使用@Subselect

@Entity
@Subselect("select * from APP_PERSONEL where authorize = 1")
public class BasePersonel extends BaseEntity<Integer> {
    ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM