代码之家  ›  专栏  ›  技术社区  ›  meGaMind

Hibernate返回PersistentBag而不是List

  •  1
  • meGaMind  · 技术社区  · 6 年前

    我有下面的关系b.w两个实体,如下所示,当我从存储库中获取OutletProductVariety对象时,价格将以PersistentBag形式出现,而不是使用fetchtype Eager后的列表形式出现。

    @Entity
    public class OutletProductVariety  {
      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      Long id;
    
      @ManyToOne
      @JoinColumn(name = "varietyId")
      Variety variety;
    
      @OneToMany(mappedBy = "outletVariety", fetch = FetchType.EAGER)
      List<Price> price;
    }
    

    @Entity
    public class Price {
    
      @Id
      @GeneratedValue(strategy=GenerationType.AUTO)
      Long Id;
    
      @ManyToOne
      @JoinColumn(name="outletVareityId")
      private OutletProductVariety outletVariety;
    
      private Double price;
    }
    

    我怎样才能得到一个价格表而不是持久包?

    1 回复  |  直到 6 年前
        1
  •  2
  •   mrkernelpanic    6 年前

    看看冬眠 PersistentBag

    可以包含相同元素的无序、未排序的集合 包。大多数开发人员似乎使用列表来表示 包语义,所以Hibernate遵循这个实践。

    public class PersistentBag extends AbstractPersistentCollection implements List
    
    protected List bag;
    

    java.util.List; 所以基本上是 List