【问题标题】:Hibernate Criteria API on Child table子表上的休眠条件 API
【发布时间】:2016-11-10 02:55:07
【问题描述】:

这里是 2 个 DTO:

class Item { 
    private Integer id; 
    private Integer serviceId;
    private String itemGuid; 
    private String meterId; 
    private Integer resourceId; 
    private String meterName; 
    private String description; 
    private String category; 
    private String subCategory; 
    private List rates; 
}
public class Rates { 
    private Integer id; 
    private Double unit; 
    private Double price; 
    private String field1Unique; 
    private String field2Unique; 
    private String field1Index; 
    private String field2Index; 
    private String serviceData; 
}

Item 和 Rates 的关系如下:

@OneToMany(mappedBy = "ItemDTOs", fetch = FetchType.LAZY)

在 Rates 表中,连接列如下:@JoinColumn(name = "Item_id", nullable = false)

我需要获取 Item.serviceId=10(来自 item 表)和 Rates.field1Index=24(来自 Rates 表)的所有商品以及 Rates

你能告诉我如何使用标准 API 获取它

【问题讨论】:

    标签: java database hibernate orm hibernate-criteria


    【解决方案1】:

    应该是这样的:

    CriteriaBuilder cb=null;
        CriteriaQuery<Item> cq = cb.createQuery(Item.class);
        Root<Item> root = cq.from(Item.class);
        Join<Item, Rates> join =  root.join("rates");
        cq.where( cb.and(cb.equal(root.get("serviceId"), 10), cb.equal(join.get("field1Index"),24)));
    

    【讨论】:

      猜你喜欢
      • 2020-10-26
      • 1970-01-01
      • 2011-04-13
      • 2012-06-27
      • 2011-05-05
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多