Ebean.update()で更新されないカラムが発生
環境
症状
- 不規則に更新出来たり出来なかったりする項目がある。
- 再現性はあった。(でも変更前のレコードの状態が違うと別の項目が更新出来なくなる不思議~)
- Exceptionは発生しない。ちゃんと更新出来ている項目もある。
結論
- 一部で、setter(user.setName(name))ではなく、代入(user.name = name)で値を入れようとした事が原因。
- どうやらPlay-Ebean間のオブジェクトごにょごにょ中に、代入だと落ちるっぽい。(※時間があったら調べる)
↓原因特定の助けになったStackOverFlow記事。
playframework - EBean is not doing updates! it's trying to do inserts and failing - Stack Overflow
ほんと日々の困った!はGoogle先生とStackOverFlow様様ですね。
まぁ私としては、そもそもModelクラスのフィールド変数が public だったことがこのトラブルの元凶だったねごめんね!!って感じです。
書き手が違うとこういうことがあるのかなるほど、体験をしてしまった。
よく見かけるEbeanのサンプルだとpublicなので、何も考えずにそうしてましたが、ちゃんとprivateにしましょうごめんなさいでした。