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
도 serializable이어야하고 또한 Feature
내부의 모든 복합 관련 클래스가 있어야합니다.
정상입니까?