【发布时间】:2017-10-06 11:30:12
【问题描述】:
我有以下关系
如您所见,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 字段,这将导致Feature 也应该是可序列化的,而且Feature 中的所有复合相关类也应该是可序列化的。
这正常吗?
【问题讨论】:
标签: java sqlite jpa serializable composite-key