@@ -448,8 +448,8 @@ public function verify()
448448 SELECT node. $ nodeIdField AS id, node. $ levelField AS node_level, MAX(c.depth) AS closure_level
449449 FROM {$ nodeMeta ->name } AS node
450450 INNER JOIN {$ closureMeta ->name } AS c WITH c.descendant = node. $ nodeIdField
451- GROUP BY node.id , node.level
452- HAVING node_level IS NULL OR node_level <> closure_level
451+ GROUP BY node. $ nodeIdField , node. $ levelField
452+ HAVING node. $ levelField IS NULL OR node. $ levelField <> MAX(c.depth) + 1
453453 " )->setMaxResults ($ maxResults );
454454
455455 if ($ invalidLevelsCount = count ($ q ->getScalarResult ())) {
@@ -574,16 +574,16 @@ public function updateLevelValues()
574574 SELECT node. $ nodeIdField AS id, node. $ levelField AS node_level, MAX(c.depth) AS closure_level
575575 FROM {$ nodeMeta ->name } AS node
576576 INNER JOIN {$ closureMeta ->name } AS c WITH c.descendant = node. $ nodeIdField
577- GROUP BY node.id , node.level
578- HAVING node_level IS NULL OR node_level <> closure_level
577+ GROUP BY node. $ nodeIdField , node. $ levelField
578+ HAVING node. $ levelField IS NULL OR node. $ levelField <> MAX(c.depth) + 1
579579 " )->setMaxResults ($ batchSize )->setCacheable (false );
580580 do {
581581 $ entries = $ q ->getScalarResult ();
582582 $ this ->_em ->getConnection ()->beginTransaction ();
583583 foreach ($ entries as $ entry ) {
584584 unset($ entry ['node_level ' ]);
585585 $ this ->_em ->createQuery ("
586- UPDATE {$ nodeMeta ->name } AS node SET node. $ levelField = :closure_level WHERE node. $ nodeIdField = :id
586+ UPDATE {$ nodeMeta ->name } AS node SET node. $ levelField = ( :closure_level + 1) WHERE node. $ nodeIdField = :id
587587 " )->execute ($ entry );
588588 }
589589 $ this ->_em ->getConnection ()->commit ();
0 commit comments