2010-09-10 22 views
1

我已经休眠的对象定义为休眠:我怎样写的HQL用于获取一个实体的记录,没有记录其确定关系

Class SomeText{ 
    private Long textId; 
    private Set<Tag> Tags = new HashSet<Tag>(); 

    @ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE }) 
    @JoinTable(name = "text_tag_reln", 
    joinColumns = { @JoinColumn(name = "textId") }, 
    inverseJoinColumns = { @JoinColumn(name = "tagId") }) 
    public Set<Tag> getTags() { 
     return Tags; 
    } 
} 

Class Tag{ 
    private long tagId; 
} 

我现在想获得所有不具有任何的SomeText对象标签。我写了下面的HQL,但它不起作用。

select st from SomeText as st where st.Tags = null 

我该如何获取这些记录。在SQL世界中,我会写一个查询,它将从text_tag_reln表中获取所有不同的textIds,并获取该集中不存在的所有SomeText ID。我如何在HQL中做到这一点?

+0

设置标签,以新的HashSet ()当您创建对象,怎么可能永远是空的? – 2010-09-10 13:16:25

回答