抽象的なスーパークラス「ビュー」があります
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="tipo", length=1)
public abstract class View extends DefaultModel implements Serializable{
private static final long serialVersionUID = -4850147998379161237L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
public abstract List<Institution> getInstitutions();
}
児童施設クラス
@Entity
@DiscriminatorValue("1")
public class Institution extends View implements Serializable {
private static final long serialVersionUID = -18542249993446160L;
@Override
@JsonIgnore
public List<Institution> getInstitutions() {
return Lists.newArrayList(this);
}
}
そして子供会
@Entity
@DiscriminatorValue("2")
public class GroupInstitution extends View {
private static final long serialVersionUID = -6552513217676651258L;
@ManyToMany
List<Institution> institutions = new LinkedList<>();
@Override
@JsonIgnore
public List<Institution> getInstitutions() {
return institutions;
}
}
私は3つの機関を救いました。Ok。この3つの機関でグループを救おうとしました。これにより、新しいビューが作成されました (タイプ = 2)。しかし、リレーションシップ テーブルは次のようになります。
2, 1
2, 2
2, 3
つまり、GroupInstitution.id の代わりに DiscriminatorValue を使用します (DiscriminatorValue を 3 に変更しました。テストだけで、関係は 3 で完了しました)。
注釈は間違いですか?