我的课程有一些领域,其中之一是孩子的集合。问题是孩子使班级独一无二,我必须按孩子搜索重复项(从一开始班级就没有任何ID)。
所以我这样写:
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)导入大量数据,然后在 3-4 个孩子的 200-300 c 上搜索可能需要 5-6 秒。
我想我错过了一些大事,但不知道到底是什么。你能帮我么。
更新:这个查询可以给我线索,如果我已经在数据库中有这样的对象并且不需要再添加一个(正如我所说的 - 从一开始就没有 ID)。我的意思是 - 如果数据库中存在具有相同项目(项目!= ID)和相同子集的对象,我不需要再添加一个,否则我需要创建新记录。