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