集合对象上的休眠 HQL 构造函数表达式



我有以下

Order {
  Date date, 
  String title, 
  List<Item> items
}
Item {
  String name, 
  String qty, 
  ... [other non-related information]
}

我可以编写一个 HQL,它将返回一个包含项目的订单列表。

SELECT order 
FROM Orders order 
  LEFT JOIN FETCH oder.items 
WHERE item.qty > 2

我的问题是,我可以将构造函数表达式放在"项目"上以仅获取(名称和数量(吗?

不。但是,您可以做的是使用实体图仅加载您感兴趣的Item中的那些字段。

请注意:

  • 您需要确保启用了实体增强(否则基本属性仍将急切加载(
  • 你的应用可能不会尝试访问除 idnameqty 之外的任何Item属性,否则休眠可能会尝试初始化实体属性的其余部分(将发出数据库查询或引发LazyInitializationException,具体取决于实体状态(。这包括应用中"不太明显"的部分,例如 JSON 序列化库

最新更新