1

Hibernate Objects を次のように定義しています

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 に答える