1
我有以下关系如何建模包含外键的组合主键?
正如你看到的,细节的feature_affinities
表具有复合键(feature_id
,zoom
)的哪些部件是一个外键的,指的features
主表。
我写
@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;
...
这是正确的吗?
我很困惑,它声称我声明FeatureAffinitiesKey
可序列化。但由于它包含Feature
fiels,所以Feature
也应该是可序列化的,也是Feature
内的所有复合相关类。
这是正常的吗?