我有一个数据库模型,其中一对多关联中有两个表。例如,我将它们称为BALL和BASKET,即使它没有多大意义。
一个篮子可以容纳很多球,一个球可以放在一个篮子里。
在域模型中我有一个Ball类,一个带getter和setter的简单类,我有一个Basket类。我还有一个“BallGroup”类,这是一个用于检索球的策略模式实现。
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”表。
答案 0 :(得分:0)
我可以做这样的关系(双向关系):
Class Basket {
@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;
}