Jpa 如何从集合中选择与JPQL中的实体具有一对多关系的部分字段

Jpa 如何从集合中选择与JPQL中的实体具有一对多关系的部分字段,jpa,eclipselink,Jpa,Eclipselink,这个问题很有说服力,可以简单地用以下查询来描述: select c.name,c.brands FROM ShopChannels c ShopChannel是一个基本实体,它有一个对多的品牌集合,而不是在这个查询中选择所有品牌属性,如果我使用,我只想选择品牌的部分字段 select c.name,c.brands.spell from ShopChannels c 我将收到一条“无法浏览集合值关联字段”错误消息 这种查询可以极大地提高性能,因此任何人都有一个想法?JPA规范指出,“从计算

这个问题很有说服力,可以简单地用以下查询来描述:

select c.name,c.brands FROM ShopChannels c 
ShopChannel是一个基本实体,它有一个对多的品牌集合,而不是在这个查询中选择所有品牌属性,如果我使用,我只想选择品牌的部分字段

select c.name,c.brands.spell from ShopChannels c
我将收到一条“无法浏览集合值关联字段”错误消息


这种查询可以极大地提高性能,因此任何人都有一个想法?

JPA规范指出,“从计算为集合的路径表达式合成路径表达式在语法上是非法的。')您需要的解决方案是一个连接查询,如:''select c.name,b、 Spill from ShopChannel c Internal join c.brands b´。

谢谢,但此方法必须手动实例化对象,并且无法使用EclipseLink会话缓存,总之这是一个很好的解决方案。