我在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