在hibernate中搜索集合非常慢

时间:2012-07-26 09:36:42

标签: hibernate search

我的课有一些领域,其中一个是儿童的集合。问题是,孩子使课程独特,我必须按孩子搜索重复项(从开始课程没有任何ID)。

所以我写这样的smth:

SELECT c
FROM Class c, IN(c.children) c1, IN(c.children) c2, IN(c.children) c3
WHERE c.project='project' AND c1.name='name1' AND c2.name='name2' AND c3.name='name3'

当你有或多或少独特的c.project时,它工作正常。 但在某些情况下,我必须使用相同的项目(或null)导入大量数据,然后搜索可以花费5-6秒在200-300 c与3-4个孩子。

我错过了一些我想的大事但不知道到底是什么。你能帮我吗?

更新: 这个查询可以让我知道我是否已经在数据库中有这样的对象而且不需要再添加一个(正如我所说 - 从头开始​​没有ID)。 我的意思是 - 如果在数据库中存在具有相同项目的对象(项目!= ID)和相同的子集,我不需要再添加一个,否则我需要创建新记录。

1 个答案:

答案 0 :(得分:1)

假设您不能为给定的父母提供两个同名的孩子,您可以这样做:

select count(child.id) from Parent p inner join p.children child
where p.project = 'project' and child.name in ('name1', 'name2', 'name3')

如果它返回3或更多,则已存在具有这些子项的父项。

相关问题