それは@ManyToMany関係のように見えるで
@Entity
@Table(name = "category")
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "templatecat", joinColumns = { @JoinColumn(name = "categoryId", unique = true) }, inverseJoinColumns = { @JoinColumn(name = "templateId") })
private Set<Template> template;
@Entity
@Table(name = "template")
@ManyToOne(optional = true)
@JoinTable(name = "templatecat", joinColumns = { @JoinColumn(name = "templateId") }, inverseJoinColumns = { @JoinColumn(name = "categoryId") })
private Category category;
おかげで、代わりに@OneToManyおよび@ManyToManyを使用しての
では、次の設定を使用することができます:
カテゴリ内:
テンプレートクラスで
:
@Entity
@Table(name = "template")
@ManyMany(optional = true, mappedBy="templates");
private Set<Category> categories;
指定したカテゴリーのすべてのテンプレートを見たい場合は、クエリは次のようになります。
select o.templates from Category o where o.id = ?
逆はテンプレートから(だけでなく、すべてのカテゴリーの作品)
select o.categories from Template o where o.id = ?
希望しています。
私の関係は正しいと思いますが、1つのカテゴリは多くのテンプレートを持つことができますが、1つのテンプレートは複数のカテゴリを持つことはできません。私の質問は少し不明であると思いますが、 。 –
なので、なぜ '@ OneToMany'(カテゴリ内)と' @ ManyToOne'(テンプレート内)の関係を使用しないのですか?このように中間テーブルは必要ありません。クエリは次のようになります: 'o.name =? – leozin