java - 如何禁用 hibernate 公式(如过滤器)?这可能吗?

标签 java hibernate formula

在 Hibernate ORM 中,我们可以使用
禁用过滤器 session.disableFilter("filterName");
有没有解决方案可以在hibernate中禁用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 .

关于java - 如何禁用 hibernate 公式(如过滤器)?这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303531/

相关文章:

像vb一样的java快捷方式

java - 如何使用 ProductFlavors 来定义 App 中的开发行为?

java - 半秒后更新 JLabel 中包含的图片

java - 在 Eclipse 中运行程序时,使用 Hibernate 的 Eclipse 不加载 mysql 驱动程序 jar

java - JPQL 连接( hibernate )

java - 编写方法时传递参数数量与传递映射哪个更好?

java - 以 UUID 作为参数的 Hibernate 命名查询

excel - 用空白计算唯一值excel公式

paypal - 将 PayPal Mass Pay 的费用转嫁给收款人

formula - 求解三次方以找到曲线上距离点最近的点