我的实体为ProductType,Product和ProductInventory。

我有一个联接查询,以获取联接Product和ProductInventory的特定日期范围的库存清单。我有我已转换并准备好的对象数组的列表。

现在从DAO返回产品列表。

在上面的层中,如果我执行product.getProductInventory(),则实际上是在再次触发查询以获取所有库存,而不是联接获得的那些库存。

    final StringBuilder queryString = new StringBuilder(
                "from  Product As  rsProduct left outer join rsProduct.inventoryList "
                + "as inventory where rsProduct.efDate <= :travelEndDate AND rsProduct.expDate >= :travelStartDate AND rsProduct.locatiion = :LOCN AND rsProduct.id in (:productsIdList) and inventory.bookDate between :startDate and :endDate");


例如假设旅行开始日期为1月20日,旅行结束日期为1月21日。我在这里仅获得两条记录,这是完美的。

但是,当我返回另一层后,如果我说product.getInventory(),它将获取所有库存,而与日期无关。

有人可以解决这个问题吗?

最佳答案

您应该定义一个filter并启用它,然后才能访问该集合。

09-26 05:43