1

我将休眠对象定义为

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 表中获取所有不同的 textId,并获取该集合中不存在的所有 SomeText id。我怎样才能在 HQL 中做到这一点?

4

1 回答 1

1

你有没有尝试过

select st from SomeText as st where st.Tags is empty

也可以看看:

于 2010-09-10T13:48:03.340 回答