Hibernate 5.2为延迟加载的集合

时间:2016-12-26 06:57:12

标签: java hibernate session jpa java-8

我在Hibernate中的两个类之间有一对多的双向映射,如下所示

@OneToMany(mappedBy="version")
private List<Product> products = new ArrayList<>();

另一端

@ManyToOne
@JoinColumn(name="version_id")
private Version version;

现在我正在执行以下代码

List<Product> products = version.getProducts();

// some lines below
int count = products.size();

// line 999
int num = products.stream().filter(x -> x::isValid).count();

现在,当从产品系列中检索到流时,我可以看到,在过滤操作正在进行时,hibernate会打开单独的会话,以便从集合中加载每个项目。如何配置在单个会话中获取它们?

这是我的hibernate配置

<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.enable_lazy_load_no_trans">true</property>
<property name="hibernate.jdbc.batch_size">30</property>
<property name="hibernate.order_inserts">true</property>
<property name="hibernate.order_updates">true</property>

我正在使用JDK 8和Hibernate 5.2.5

0 个答案:

没有答案