【发布时间】:2026-01-17 11:35:01
【问题描述】:
在 Hibernate ORM 中,我们可以使用session.disableFilter("filterName");
禁用过滤器
有没有办法在休眠中禁用formula(使用xml映射配置)?
我想在某些情况下禁用公式以提高性能。
【问题讨论】:
在 Hibernate ORM 中,我们可以使用session.disableFilter("filterName");
禁用过滤器
有没有办法在休眠中禁用formula(使用xml映射配置)?
我想在某些情况下禁用公式以提高性能。
【问题讨论】:
如果您使用的是 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。
【讨论】: