19

「staff」、「classification」、「staff_classification」という 2 つのテーブルと結合テーブルがあります。結合テーブルには、「showclassification」という追加のブール フィールドがあります。私の注釈は次のとおりです。

 /**
 * @ManyToMany(targetEntity="Staff", inversedBy="classifications")
 * @JoinTable(name="staff_classifications",
 *  joinColumns={@JoinColumn(name="staffid", referencedColumnName="id")},
 *  inverseJoinColumns={@JoinColumn(name="classificationid", referencedColumnName="id", unique=true)});
 */
  1. 追加フィールド「showclassifications」を結合テーブルに追加するにはどうすればよいですか?
  2. DQL 経由でフィールドを参照するにはどうすればよいですか? たとえば、表示が許可されているすべてのスタッフの分類を取得するクエリは何ですか?
  3. 上記のアノテーションを 1 つのクラスに配置し、@ManyToMany アノテーションを @joinTable なしで別のクラスに配置する必要がありますか? 例 @ManyToMany (targetEntity="Classification")?
4

1 に答える 1

32

スタッフと分類の両方とのOneToMany関係を持つ関係(StaffClassifications)を記述するエンティティが必要です。

結合テーブルはエンティティではないため、ManyToManyでは「追加の」プロパティを使用できません。したがって、プロパティを使用することはできません。

于 2010-12-14T04:41:52.130 に答える