私のDoctrineレコードクラスの1つで、チェックを実行するpreSave
メソッドがあります。このチェックでは、レコードが属するテーブルと同じテーブルに対してクエリが実行されます。このクエリはテーブルから1つのレコードをフェッチし、水和結果を使用してクラスが表す現在のレコードと比較します。Doctrineレコードクラス内から、DBから同じレコードをクエリすると、そのクラス内のプロパティが上書きされます。
場合によっては、取り出した水和結果は、preSave
チェックで作業しているものと同じレコードになります。しかし、これが起こると、最初のレコードに加えた変更は、クエリが完了すると元に戻ります。
どうしてですか?回避策はありますか?