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

标签 java spring hibernate jpa hql

我正在使用 hibernate JPA。

我有一个 BasePersonnel 类作为父类(super class),它有一个 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 类上运行查询时,两个过滤器(即父类(super class)的过滤器和子类的过滤器)附加到 where 子句。 但我只想将子类过滤器附加到 where 子句。

有什么解决方案可以覆盖父类(super class)过滤器吗?

最佳答案

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

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

关于java - 如何覆盖继承类上的 hibernate JPA 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52950436/

相关文章:

java - 不能使用具有不同Spring Boot版本的库

java - 如何更好地处理@RequestParam(required=true)

java - Tomcat 8 + Spring - 双重请求错误

java - 如何在 hibernate 中将表列与另一个表列映射

hibernate - Grails将域类映射到oracle数据库中已经存在的 View

java - Hibernate 命名策略被忽略

java - 不确定这个 Java 代码示例中发生了什么

java - 使用 for-each 循环打印 ArrayList

java - 在 Java 中使用 toUpperCase() 将 ß.cfg 转换为大写

java - 从 gradle 依赖项构建 jar 文件