1

抽象的なスーパークラス「ビュー」があります

@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 で完了しました)。

注釈は間違いですか?

4

0 に答える 0