明らかなコードを避けて、次のシナリオがあります。
オブジェクト:
@Entity
@Table(name = "poliza")
public class Polizas implements Serializable {
@Id
@Column(name = "numero_poliza")
private BigDecimal numero;
}
1 つ以上の子オブジェクト:
@Entity
@Table(name = "Autos")
@IdClass(AutosPk.class)
public class Autos {
@Id
@Column(name = "auto_id")
private BigDecimal autoId;
@Id
@ManyToOne
@JoinColumn(name = "numero_poliza")
private Polizas poliza;
}
主キー クラス:
public class AutosPk {
private BigDecimal autoId;
private BigDecimal poliza;
}
この時点まで、すべてが正常に機能します。しかし、Autos をこれに変更する必要がある場合 (他のオブジェクトのリストを追加):
@Entity
@Table(name = "Autos")
@IdClass(AutosPk.class)
public class Autos {
@Id
@Column(name = "auto_id")
private BigDecimal autoId;
@Id
@ManyToOne
@JoinColumn(name = "numero_poliza")
private Polizas poliza;
@OneToMany(mappedBy = "auto_id", cascade = { CascadeType.ALL })
private List<AccesoriosAutos> accesorios;
}
そして子供:
@Entity
@Table(name = "acce_auto")
@IdClass(AccesoriosAutosPk.class)
public class AccesoriosAutos {
@Id
@Column(name = "cod_acces")
private BigDecimal codAcces;
@Id
@ManyToOne
@JoinColumns({@JoinColumn(name = "numero_poliza", referencedColumnName = "numero_poliza"),
@JoinColumn(name = "cod_auto", referencedColumnName = "cod_auto")})
private Autos auto;
}
そして主キークラスで:
public class AccesoriosAutosPk {
private BigDecimal codAcces;
private AutosPk auto;
}
説明されているマッピングは間違っていますが、私の必要性を説明していると思うので、このように投稿しました。いくつかのページを検索しましたが、このマッピングを行う方法が見つかりません。
読んでくれてありがとう、
フアン・ロメロ