我需要使用两个别名创建一个限制方程,如下所示:
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
方法?我相信这就是您正在寻找的。p>
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/