Java 限制休眠';他渴望超越刀锋

Java 限制休眠';他渴望超越刀锋,java,hibernate,hql,Java,Hibernate,Hql,我的实体有ProductType、Product和ProductInventory 我有一个连接查询,用于获取特定日期范围的库存列表,该日期范围连接Product和ProductInventory。我已经有了一个对象数组的列表,我已经把它铸造好并准备好了 现在我从DAO返回产品列表 在上面的层中,如果我执行product.getProductInventory(),它实际上会再次启动一个查询,以获取所有库存,而不是通过联接获得的库存 final StringBuilder querySt

我的实体有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");
final StringBuilder queryString=新StringBuilder(
“从产品作为rsProduct left外部联接rsProduct.inventoryList”
+“作为库存,其中rsProduct.efDate=:travelStartDate和rsProduct.location=:LOCN和rsProduct.id位于(:productsIdList)和inventory.bookDate之间,介于:startDate和:endDate”);
比如说旅行开始日期是1月20日,旅行结束日期是1月21日。我这里只有两条记录,非常完美

但在我返回到另一层之后,如果我说product.getInventory(),它将获取所有库存,而不管日期


有人能解决这个问题吗?

您应该在访问集合之前定义并启用

请格式化您的代码。上面的代码甚至无法编译.Sean,它现在已经格式化了。检查一下没问题。很高兴我能帮忙。