对@OneToMany映射的限制

时间:2017-09-01 13:06:18

标签: java hibernate

我有一个产品类,其中有一个@OneToMany关联列表的买家。我想要做的是当我搜索产品时由关联执行的买方搜索,对Buyer表的结束日期列使用空约束。如何在下面的列表映射中执行此操作。

// it would be something I needed cri.createCriteria("listaBuyer", "buyer).add(Restriction.isNull("finalDate"));

示例

注册数据

product code   |    initial date     | final date    | 
-------------------------------------------------------
  1            |  2016-28-07         |  2017-28-07   | 
 ------------------------------------------------------
  2            |  2016-10-08         |  2017-28-07   | 
 ------------------------------------------------------
  3            |  2017-28-08         |               | 
 -----------------------------------------------------
  4            |  2017-30-08         |               | 

产品类

public class Product {

@OneToMany(targetEntity=Buyer.class, orphanRemoval=true, cascade={CascadeType.PERSIST,CascadeType.MERGE}, mappedBy="product")
@LazyCollection(LazyCollectionOption.FALSE)
public List<Buyer> getListaBuyer() {
    if (listaBuyer == null) {
        listaBuyer = new ArrayList<Buyer>();
    }
    return listaBuyer;
}

建立标准

Criteria cri = getSession().createCriteria(Product.class);
    cri.createCriteria("status", "sta");

    cri.add(Restrictions.eq("id", Product.getId()));


    return cri.list();

预期结果

product code   |    initial date     | final date    | 
-------------------------------------------------------
  3            |  2017-28-08         |               | 
 -----------------------------------------------------
  4            |  2017-30-08         |               | 

返回结果

product code   |    initial date     | final date    | 
-------------------------------------------------------
  1            |  2016-28-07         |  2017-28-07   | 
 ------------------------------------------------------
  2            |  2016-10-08         |  2017-28-07   | 
 ------------------------------------------------------
  3            |  2017-28-08         |               | 
 -----------------------------------------------------
  4            |  2017-30-08         |               | 

0 个答案:

没有答案