Hibernate生成额外的查询

时间:2010-12-31 09:42:50

标签: java hibernate

我有2张桌子A和B. 我写的aql像a.key =?和a.id = b.id

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

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

我不明白为什么它不能执行查询购买在单个查询中给出179个元素

1 个答案:

答案 0 :(得分:3)

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

batch-size="100"

可能:

fetch="select"

您可以将其更改为:

fetch="join"

或将批量大小增加到200,看看会发生什么。

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