Ich habe die folgende BeziehungWie modelliert man einen zusammengesetzten Primärschlüssel, der einen Fremdschlüssel enthält?
Wie Sie sehen, Details Tabelle feature_affinities
hat zusammengesetzte Schlüssel (feature_id
, zoom
), der von welchen Komponenten es ein Fremdschlüssel mit Bezug Master-Tabelle von features
.
Ich schrieb
@Entity
@Table(name = "features")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "subtype_id", discriminatorType = DiscriminatorType.INTEGER)
public class Feature {
@Id
@Column(name="id")
@GeneratedValue(generator="sqlite")
@TableGenerator(name="sqlite", table="sqlite_sequence",
pkColumnName="name", valueColumnName="seq",
pkColumnValue="features")
// @GeneratedValue(strategy = GenerationType.IDENTITY)
@Getter
@Setter
private long id;
...
@Embeddable
public class FeatureAffinitiesKey implements Serializable {
@ManyToOne
@JoinColumn(name = "feature_id")
@Getter
@Setter
private Feature feature;
@Column(name = "zoom")
@Getter
@Setter
private Long zoom;
}
@Entity
@Table(name = "feature_affinities")
public class FeatureAffinities {
@Getter
@Setter
@EmbeddedId
private FeatureAffinitiesKey key;
...
Ist das richtig?
Ich bin verwirrt, dass es behauptet, dass ich FeatureAffinitiesKey
Serialisierbar erklären. Aber da es Feature
Felder enthält, wird es dazu führen, Feature
sollte auch serialisieren und auch alle zusammenhängenden Klassen innerhalb Feature
sein.
Ist das normal?