如何在Hibernate中查询地图属性?

时间:2011-05-18 17:30:26

标签: hibernate hql

我正在学习HQL,我有一个像这样的Map属性的对象:

    @ElementCollection
    @JoinTable(name = "InfoLicenzaOrdine", joinColumns = @JoinColumn(name = "infolicenza"))
    @Column(length = 64000)
    public Map<String, String> getInformazioniDiLicenza() {
        return informazioniDiLicenza;
    }

    public void setInformazioniDiLicenza(
            Map<String, String> informazioniDiLicenza) {
        this.informazioniDiLicenza = informazioniDiLicenza;
    }

现在是一个HQL查询,如:

 select ordine from Ordine ordine where ordine.informazioniDiLicenza['codiceAccisa1'] = 'IT00NOV00029W'

将返回具有该值的特定键的所有对象。如果我只想要所有具有该值的对象而不管密钥怎么办?

2 个答案:

答案 0 :(得分:2)

如果&#39; IT00NOV00029W&#39;由任何键存储Ordine将被选中。小心

答案 1 :(得分:1)

select ordine from Ordine ordine 
    where 'IT00NOV00029W' in elements(ordine.informazioniDiLicenza) 

另见: