バッチ処理で JSON カラムの連想配列内部を書き換えて更新するような処理を回していたら、見事に全く更新されておらず、呆然としてしまったので、原因を調査して対応したことをメモ。 CakePHP 3.x で発生しただけの話で、他のフレームワークの ORM でも同様の事象が発生するかどうかは不明ですが、もし、似たような事象が起こり、この記事に辿り着き、同じ観点で調査対象を絞れたりすることを期待し、少し大げさなタイトルを付けてしまいましたが、ご了承願います。 原因 JSON カラムで作られた property の連想配列内部が更新されても、該当する model entity の property が更新された (汚された) と検知できておらず、 save メソッドを実行しても更新処理が skip されてしまっていた。 対応 JSON カラムで作られた property の連想配列を更新する場合、
