Java Hibernate:如何将一对多关联映射到一组复杂的对象?
我有一个DB模型,其中一对多关联中有两个表。例如,我会称它们为球和篮,即使这没有多大意义 一个篮子可以装很多球,而一个球只能装在一个篮子里 在域模型中,我有一个Ball类,一个包含getter和setter的简单类,还有一个Basket类。我还有一个BallGroup类,这是一个用于检索球的策略模式实现Java Hibernate:如何将一对多关联映射到一组复杂的对象?,java,hibernate,associations,one-to-many,pojo,Java,Hibernate,Associations,One To Many,Pojo,我有一个DB模型,其中一对多关联中有两个表。例如,我会称它们为球和篮,即使这没有多大意义 一个篮子可以装很多球,而一个球只能装在一个篮子里 在域模型中,我有一个Ball类,一个包含getter和setter的简单类,还有一个Basket类。我还有一个BallGroup类,这是一个用于检索球的策略模式实现 public class Ball { // getter and setters. } public interface IBallGroup { List
public class Ball {
// getter and setters.
}
public interface IBallGroup {
List getBalls(String type);
}
public class BallGroupStrategyA {
private List balls;
List getBalls(String type) {
// StrategyA impl.
}
}
public class BallGroupStrategyB {
private Tree balls;
List getBalls(String type) {
// StrategyB impl.
}
}
public class Basket {
// How do i map the balls collection in this attribute?
private IBallGroup ballGroup;
}
球的集合实际上存储在一个IBallGroup对象中,但我的数据库中没有也不需要一个BallGroup表。好的,我可以建立这样的双向关系: 班级篮{
@OneToMany(targetEntity=Ball.class,
orphanRemoval = true,cascade={javax.persistence.CascadeType.ALL})
@JoinColumn(name="id_ball")
public Set<Ball> getBall() {
return ball;
}
public void setBall(Set<Ball> ball) {
this.ball = ball;
}
}
@ManyToOne
@JoinColumn(name="id_basket", nullable=false)
public Transportista getBasket() {
return basket;
}
public void setBasket(Basket basket) {
this.basket = basket;
}