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

Ali*_*abi 5 java spring hibernate jpa hql

我正在使用hibernate JPA.

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

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

它有一个子类:

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

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

有没有任何解决方案来覆盖超类过滤器?

Vla*_*cea 1

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

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