12
は、2つの関係次の点を考慮Hibernate:多対多の結合テーブルを持つ基準?
@Entity class Foo {
@Id id;
@ManyToMany
@JoinTable(name = "ATag",
joinColumns = @JoinColumn(name = "foo_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id"))
Set<Tag> tags;
}
@Entity class Tag {
@Id Long id;
String name;
}
はテーブルATAGに参加するには、対応するエンティティクラスはありません。今、私はすべてのFooのインスタンスをTag1という名前のTagで取得したいのですが、それはCriteriaだけを使うことですか?
サブクエリが役に立つかもしれませんが、存在しないATag.classクラスのDetachedCriteriaを作成することはできません。
オブジェクト自体のプロパティではなくオブジェクトのプロパティの使用について注意することが重要です。制限を使用するHibernateは、POJOで定義されたプライマリキーを使用するだけではありません。ここでは、オブジェクトタグの属性名を使用しています。私は、明示的ではなくオブジェクト全体を設定しようとすると時間を失い、条件述語の下でどのプロパティをチェックする必要があるかを述べました。 –
エイリアスを使用する必要があるのはなぜですか? 'tagsAlias.name'の代わりに単に' tags.name'を使用することはできませんか? – sp00m
エイリアスを作成すると、自動的に内部結合が行われます。 – derrik