0

これらのコマンドでエンティティを削除しています:

$this->getEntityManager()->remove($exclusivedeal->getPicture());
$exclusivedeal->setPicture();
$this->getEntityManager()->flush();
$this->getEntityManager()->getConnection()->commit();

ピクチャ属性は、ピクチャ エンティティに対する ManyToOne 関係です。画像エンティティには、postremove アノテーションを介して呼び出される関数があり、画像をファイルシステムから物理的に削除します。Flush() 操作は、SQL ステートメントを実行しています。delete ステートメントの後、select ステートメントも呼び出されます。これにより、次のエラーが発生します。

[2012-06-07 10:06:46] request.CRITICAL: Doctrine\ORM\EntityNotFoundException: Entity was not found. (uncaught exception) at C:\xampp\htdocs\forum\app\cache\dev\doctrine\orm\Proxies\__CG__DankeForumBundleEntityPicture.php line 32 [] []

注釈を preRemove に変更すると、すべて問題ありませんが、これでは解決できません。Pictureエンティティとの関係を持つ他のエンティティで同じ操作を行っています。

カスケード削除アノテーションを設定すると、同じ問題が発生します。

誰かが私が間違っていることを知っていますか?

どうもありがとうございました。

4

2 に答える 2

2

私は同じ問題を抱えていて、問題を解決しようとして多くの頭痛の種になりました。私はついに問題を見つけました。この問題を解決するために、doctrine でファイルのアップロードを処理するための symfony Web サイトのクックブックが更新されました

于 2013-01-08T10:45:50.323 に答える
1

私はこれとまったく同じ問題にぶつかり、私の場合の問題は、cascade = {"all"}(つまり'remove')とonDelete="CASCADE"の両方を使用していたためであることがわかりました。

カスケードを「永続化」に変更すると解決し、画像が関連付けられているエンティティを削除できるようになりました。

于 2012-11-06T12:05:07.173 に答える