"問題"
プロファイラーで:
- クエリを選択
- 別の選択クエリ
- 3 番目のクエリ
そして今、コントローラーで挿入を呼び出すので、このクエリが実行されます
$re=new Requests();
$re->setViewed(false);
$em->persist($add);
$em->flush();
そして、別の「3」クエリが発生します。
大丈夫ですか?それとも私は何か間違っていますか?...
"問題"
プロファイラーで:
そして今、コントローラーで挿入を呼び出すので、このクエリが実行されます
$re=new Requests();
$re->setViewed(false);
$em->persist($add);
$em->flush();
そして、別の「3」クエリが発生します。
大丈夫ですか?それとも私は何か間違っていますか?...
への各呼び出しDoctrine\ORM\EntityManager#flush
は、トランザクションにラップされます。
つまり、現在の RDBM がトランザクションをサポートしている場合、ORM は自動的START TRANSACTION
に必要なすべてのクエリを実行し、COMMIT
すべてがうまくいっROLLBACK
たか、エラーが発生したかのいずれかを実行します。
Doctrine 2 ORM がどのようにトランザクションと同時実行性を処理するかについては、ドキュメントで詳しく読むことができます。