日々精進

新しく学んだことを書き留めていきます

springアプリでbootRunを実行すると「generating equals/hashcode implementation but without a call to superclass」警告

原因は以下。

  • ある実装クラスAを継承している実装クラスBに@Dataがついている
  • その場合、Bのequals/hashCodeではAのフィールドは使われない。なのでAで定義されているフィールドの値が違っていてもa.equals(b)がtrueになってしまう

@EqualsAndHashCode(callSuper=true) をクラスBにつけると直った。

参考:

stackoverflow.com