【问题标题】:Why we use Set<Object> or List<Object> in Hibernate One-To-Many relationship rather than HashSet<Object> or ArrayList<Object>? [duplicate]为什么我们在 Hibernate 一对多关系中使用 Set<Object> 或 List<Object> 而不是 HashSet<Object> 或 ArrayList<Object>? [复制]
【发布时间】:2019-12-18 18:53:50
【问题描述】:

当实体类中存在一对多关系时,我总是看到人们使用集合框架的接口。例如,如果作者写了很多书,那么它看起来像这样:

@OneToMany(mappedBy = "author")
private List<Book> books;

为什么不

@OneToMany(mappedBy = "author")
private ArrayList<Book> books;

或者

@OneToMany(mappedBy = "author")
private Set<Book> books;

而不是

@OneToMany(mappedBy = "author")
private HashSet<Book> books;

那么为什么要使用接口而不是集合框架的实现呢?

【问题讨论】:

  • 出于同样的原因,您首先拥有接口。是否使用休眠都没关系

标签: java hibernate collections one-to-many


【解决方案1】:

推荐的方法是使用接口而不是具体类型,因为 Hibernate 在后台注入了它自己的实现(如PersistenBagPersistentSet 等)来提供它的延迟加载/脏检查和其他魔法。结帐this也回答。

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多