Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate:如何将一对多关联映射到一组复杂的对象?_Java_Hibernate_Associations_One To Many_Pojo - Fatal编程技术网

Java Hibernate:如何将一对多关联映射到一组复杂的对象?

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

我有一个DB模型,其中一对多关联中有两个表。例如,我会称它们为球和篮,即使这没有多大意义

一个篮子可以装很多球,而一个球只能装在一个篮子里

在域模型中,我有一个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表。

好的,我可以建立这样的双向关系:

班级篮{

@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;
}