我有以下情况,避免明显的代码:
一个东西:
@Entity
@Table(name = "poliza")
public class Polizas implements Serializable {
@Id
@Column(name = "numero_poliza")
private BigDecimal numero;
}
一个或多个子对象:
@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;
}
描述的映射是错误的,但我这样发布是因为我认为它解释了我的需要。我已经搜索了几页,但我找不到进行此映射的方法。
提前感谢您的阅读,
胡安·罗梅罗