考虑以下情形:两个数据库表(生产者和生产者),具有一对多关系(一个生产者由一个生产者创建,一个生产者具有多个产品),每个表具有多个字段包括名称和ID)。HQL - 选择嵌套对象
此外,考虑我有两个管理实体(生产者和产品)和这些对象(非托管)用作DTO(ProducerDTO和ProduceDTO)只有名称和ID(和关系)的两个较小版本。
我想选择使用HQL查询作为生产者设置的特定产品(作为DTO)。更清楚的是: SELECT new ProduceDTO(produce.id, new ProducerDTO(producer.id, producer.name), produce.name) FROM Produce produce JOIN produce.producer producer WHERE ...
但我在produce.id
之后得到一个QuerySyntaxException: unexpected token: ,
在查询中。所以我的问题是:是否可以在HQL中选择嵌套的自定义对象,如果是这样,那么对此有哪些规则/限制?对于单个自定义对象,它工作得很好,但是当我尝试接下来2个或更多时,我遇到了问题。
注意:问题是要更好地理解这种现象,不一定针对这种特定情况(我已经对我的实际类有一个解决方案)。
谢谢!