我有一个名为Product的类,其上有以下Map:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@MapKeyEnumerated(EnumType.STRING)
private Map<SampleType, Sample<?>> samples = new BasicMap<SampleType, Sample<?>>();
我想写一个HQL查询来获取地图本身以及产品上的其他一些字段。
我尝试了以下内容:
SELECT product.id,product.name,index(sample),sample FROM Product IN INNER JOIN p.samples sample
但是上面的内容会返回Product的重复行以及地图中的每个条目。
例如,如果它看起来像:
产品1 - {{SampleType1,Sample1} {SampleType2,Sample2}}
它返回2行:
001,Product1,SampleType1,Sample1
001,Product1,SampleType2,Sample2
相反,它应该返回类似的内容:
001,Product1,{{SampleType1,Sample1} {SampleType2,Sample2}}
谢谢!