如何在 Hibernate Criteria 查询的两个不同别名之间创建限制?
How to create restriction between two different aliases on Hibernate Criteria query?
我需要用两个别名做一个限制 eq,像这样:
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 有一个 clientOldPlans 列表(OneToMany 关系)和一个 clientPlan(OneToOne)。 ClientOldPlan 和 ClientPlan 是不同的 类,但是有共同的 category 属性,所以我想获取与 ClientOldPlans
具有相同类别的 ClientPlans
这个限制不起作用,因为 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");
我需要用两个别名做一个限制 eq,像这样:
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 有一个 clientOldPlans 列表(OneToMany 关系)和一个 clientPlan(OneToOne)。 ClientOldPlan 和 ClientPlan 是不同的 类,但是有共同的 category 属性,所以我想获取与 ClientOldPlans
具有相同类别的 ClientPlans这个限制不起作用,因为 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");