我在 EclipseLink 2.3.2 中有一个 JPA / JPQL 查询,并且我在多个集合上提供了一个批量获取查询提示
hints={
@QueryHint(name=QueryHints.BATCH, value="obj.collection1"),
@QueryHint(name=QueryHints.BATCH, value="obj.group.members"),
@QueryHint(name=QueryHints.BATCH_TYPE, value="IN"),
}
有没有办法在不同的集合上指定不同的批量获取类型,这样我就可以obj.collection1
使用JOIN
and obj.group.members
with IN
or获得EXISTS
?
还是它们都必须相同?
实际应用是在嵌套集合上进行提取,在不同级别可能存在不同的基数。例如,对于初始查询,可能会返回数千行,因此我无法使用“IN”forobj.collection1
而不会破坏 Oracle 对 IN 子句的语法限制。另一方面,因为obj.group.members
可能只有几个不同的值,group
所以 IN 子句会更有意义。