Java 如何禁用hibernate公式过滤器?这可能吗?

Java 如何禁用hibernate公式过滤器?这可能吗?,java,hibernate,formula,Java,Hibernate,Formula,在Hibernate ORM中,我们可以使用 session.disableFilter(“filterName”) 是否有任何解决方案可以在hibernate中禁用公式(使用xml映射配置)? 我想在某些情况下禁用公式以提高性能。如果您使用的是JPA 2.1,则可以使用函数调用功能。为此,您应该将公式查询移动到数据库函数中,并在select子句中调用该函数。例如,假设计算是一个包含两个数字参数的数据库函数。 然后可以通过以下方式调用此函数: Object r = em.createQuery(

在Hibernate ORM中,我们可以使用
session.disableFilter(“filterName”)
是否有任何解决方案可以在hibernate中禁用公式(使用xml映射配置)?

我想在某些情况下禁用公式以提高性能。

如果您使用的是JPA 2.1,则可以使用函数调用功能。为此,您应该将公式查询移动到数据库函数中,并在select子句中调用该函数。例如,假设
计算
是一个包含两个数字参数的数据库函数。
然后可以通过以下方式调用此函数:

Object r = em.createQuery("SELECT function('calculate', a.id, 1) FROM Author a WHERE a.id = 1").getSingleResult();
public class MyPostgreSQL9Dialect extends PostgreSQL94Dialect {

    public MyPostgreSQL9Dialect() {
        super();
        registerFunction("calculate", new StandardSQLFunction("calculate"));
    }
}
您必须通过以下方式注册自定义函数:

Object r = em.createQuery("SELECT function('calculate', a.id, 1) FROM Author a WHERE a.id = 1").getSingleResult();
public class MyPostgreSQL9Dialect extends PostgreSQL94Dialect {

    public MyPostgreSQL9Dialect() {
        super();
        registerFunction("calculate", new StandardSQLFunction("calculate"));
    }
}
有关更多信息,请查看