在Hibernate ORM中我们可以使用
来禁用过滤器
session.disableFilter("filterName");
是否有任何解决方案可以在hibernate中禁用formula
(使用xml映射配置)?
我想在某些情况下禁用公式以提高性能。
答案 0 :(得分:1)
如果您使用的是JPA 2.1,则可以使用函数调用功能。为此,您应该将公式查询移动到数据库函数和select子句中的函数调用。例如,假设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"));
}
}
有关详情,请查看this。