gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:24:30 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com