モデルにJPAアノテーションを追加しようとしています。ここでスーパークラスの双方向関係を持つJPAアノテーション
は私のスーパークラスの一部です:
@Entity
@Table(name="destinations")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
public abstract class Destination {
protected abstract Destination getParent();
protected abstract Set<Destination> getChildren();
}
そして、これらは実装されている:
@Entity
@DiscriminatorValue(value = "country")
public class Country extends Destination {
private Set<Destination> regions;
private Set<Destination> cities;
@Override
public Destination getParent() {
return null;
}
@Override
public Set<Destination> getChildren() {
if (regions != null && !regions.isEmpty()) {
return regions;
}
return cities;
}
}
@Entity
@DiscriminatorValue(value = "region")
public class Region extends Destination {
private Set<Destination> cities;
private Country country;
@Override
public Destination getParent() {
return country;
}
@Override
public Set<Destination> getChildren() {
return cities;
}
}
@Entity
@DiscriminatorValue(value = "city")
public class City extends Destination {
private Country country;
private Region region;
@Override
public Destination getParent() {
if (region != null) {
return region;
}
return country;
}
@Override
public Set<Destination> getChildren() {
return null;
}
}
だから地域なしではなく都市でそれ都市、および国と地域を持っている国があります。
どのようにこれらのクラスに注釈を付けて、双方向関係を維持し、すべての宛先を単一の表にすることができますか?私の理解として理想的