Java Hibernate生成额外的查询

Java Hibernate生成额外的查询,java,hibernate,Java,Hibernate,我有两张桌子A和B。 我写hql就像一个.key=?a.id=b.id 它会生成超出需要的额外查询 第一个查询是从中获取与give.key匹配的元素(它有179个元素)。 然后执行相同的查询4次。第一次迭代在“in”子句中取100个参数,然后取50个,然后取25个,然后取4个 我不明白为什么它不能执行查询,在单个查询中提供179个元素关于从A到B的关系,您很可能有: batch-size="100" 还有可能: fetch="select" 您可以将其更改为: fetch="join" 或

我有两张桌子A和B。 我写hql就像一个.key=?a.id=b.id

它会生成超出需要的额外查询

第一个查询是从中获取与give.key匹配的元素(它有179个元素)。 然后执行相同的查询4次。第一次迭代在“in”子句中取100个参数,然后取50个,然后取25个,然后取4个


我不明白为什么它不能执行查询,在单个查询中提供179个元素

关于从A到B的关系,您很可能有:

batch-size="100"
还有可能:

fetch="select"
您可以将其更改为:

fetch="join"
或者将批量大小增加到200,看看会发生什么

请注意,查询的
a.id=b.id
部分表明您的OO设计和ORM映射不正确。您需要使用关系并让hibernate为您完成工作(在本例中是连接)。如果是这种情况,则在正确映射实体之前,上述建议不适用