使用HQL检索实体上的一对多Map

时间:2015-06-02 14:00:09

标签: hql

我有一个名为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}}

谢谢!

0 个答案:

没有答案