【问题标题】:Hibernate: How do i map an one-to-many association with a complex set of objects?Hibernate:如何映射与一组复杂对象的一对多关联?
【发布时间】:2011-12-08 03:50:34
【问题描述】:

我有一个数据库模型,其中有两个表处于一对多关联中。例如,我将它们称为 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”表。

【问题讨论】:

    标签: java hibernate associations one-to-many pojo


    【解决方案1】:

    我可以做这样的关系(双向关系):

    班级篮子{

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 2012-04-02
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 2023-04-07
      相关资源
      最近更新 更多