gpt4 book ai didi

java - CriteriaBuilder 具有子关联的标准。 hibernate

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:14 25 4
gpt4 key购买 nike

我有订单(id,名称),其中 oneToMany 到项目(id,名称):

如何使用 CriteriaBuilder 只获取包含名称为“banana”的商品的订单:

   @Override
public Order orderQuery() {

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery criteriaQuery = cb.createQuery(Order.class);
Root root = criteriaQuery.from(Order.class);
root.fetch("items", JoinType.INNER);
CriteriaQuery d = criteriaQuery.select(root);

criteriaQuery.where(cb.equal(root.get("item.name"), "banana"));
return (Order)this.entityManager.createQuery(criteriaQuery).getSingleResult());

}

我收到错误:

Unable to locate Attribute  with the the given name [item.name] on

最佳答案

您需要使用联接。围绕这些线的内容:

Join< Order ,Item> joinItems = root.join("items");
criteriaQuery.where(cb.equal(joinItems.get("item.name"), "banana"));

或者您可以执行以下操作:

criteriaQuery.where(cb.equal(root.get("items").get("name"), "banana"));

关于java - CriteriaBuilder 具有子关联的标准。 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54572572/

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