我有以下场景,避免明显的代码:
一个对象:
@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;
}
描述的映射是错误的,但我发布这种方式是因为我认为它解释了我的需要。我搜索了几个页面,但我找不到这种映射的方法。
提前感谢您的阅读,
胡安罗梅罗答案 0 :(得分:0)
从我的观点来看,我有几件事要提及:
希望这有帮助。