我在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
和obj.group.members
IN
或EXISTS
}?
或者他们都必须一样吗?
实际应用是,通过对嵌套集合进行获取,可能在不同级别上存在不同的基数。例如,对于初始查询,可能会返回数千行,因此我无法在obj.collection1
中使用“IN”,而不会破坏IN子句中的Oracle语法限制。另一方面,对于obj.group.members
,可能只有一些不同的group
值,因此IN子句会更有意义。