/** * @param \Eccube\Entity\ClassName $ClassName * @return bool */ public function delete(\Eccube\Entity\ClassName $ClassName) { $em = $this->getEntityManager(); $em->getConnection()->beginTransaction(); try { if ($ClassName->getClassCategories()->count() > 0) { throw new \Exception(); } $rank = $ClassName->getRank(); $em->createQueryBuilder()->update('Eccube\\Entity\\ClassName', 'cn')->set('cn.rank', 'cn.rank - 1')->where('cn.rank > :rank')->setParameter('rank', $rank)->getQuery()->execute(); $ClassName->setDelFlg(1); $em->persist($ClassName); $em->flush(); $em->getConnection()->commit(); } catch (\Exception $e) { $em->getConnection()->rollback(); return false; } return true; }