java - 如何在 Hibernate Criteria 查询的两个不同别名之间创建限制?

标签 java hibernate criteria

我需要使用两个别名创建一个限制方程,如下所示:

final Criteria query = sessionFactory.getCurrentSession().createCriteria(Client.class);
query.createAlias("clientPlan", "clientPlanAlias");
query.createAlias("clientOldPlan", "clientOldPlanAlias");
...

query.add(Restrictions.eq("clientPlanAlias.category", "clientOldPlanAlias.category");

Client 有一系列 clientOldPlan(OneToMany 关系)和一个 clientPlan(OneToOne)。 ClientOldPlan 和 ClientPlan 是不同的类,但具有共同的类别属性,因此我想获取与 ClientOldPlans 具有相同类别的 ClientPlan

此限制不起作用,因为 hibernate 会尝试将 clientPlan.category 与字符串“clientOldPlanAlias.category”进行匹配。

执行此限制的正确方法是什么?

最佳答案

您是否尝试过使用 Restrictions.eqProperty方法?我相信这就是您正在寻找的。

final Criteria query = sessionFactory.getCurrentSession().createCriteria(Client.class);
query.createAlias("clientPlan", "clientPlanAlias");
query.createAlias("clientOldPlan", "clientOldPlanAlias");
...

query.add(Restrictions.eqProperty("clientPlanAlias.category", "clientOldPlanAlias.category");

关于java - 如何在 Hibernate Criteria 查询的两个不同别名之间创建限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47476243/

相关文章:

javascript - 正确配置 vert.x 服务器以允许跨域资源共享 (CORS)

java - 从 xml 导入数据库

java - 使用 Hibernate 在实体中映射 java.util.Map

nhibernate - 解析搜索字符串(进入 NHibernate Criterias )

java - 防止 JavaFX 对话框关闭

java - jsp:useBean属性官方文档

Java加密文件数据并将其写入同一个文件

java - Hibernate mysql group by day连续结果

nhibernate - 使用 SetFetchMode

java - 带连接的 JPA 标准构建器包装器