@EqualsAndHashCode注釈やメモでSpringBoot @Data

       @EqualsAndHashCodeノートには、等号(他のオブジェクト)とhashCode()メソッドが生成されます。これは、非静的、非過渡プロパティのデフォルト値を使用しています。いくつかのパラメータは、除外プロパティを除外することができるパラメータを指定する属性のみのものであってもよいです。それはデフォルトのメソッドとクラスで定義されたプロパティを使用して、親クラスを呼び出すことはありません、あなたは= callSuperによって工程で発生する真の親クラスのメソッドの呼び出しを許可することができます。

       ゲッター、セッター@、@ RequiredArgsConstructor @セットに相当@Dataノート 、@ ToStringメソッドと@EqualsAndHashCode 5つの注釈。@Dataノートは、ノートが@EqualsAndHashCodeを持っている場合は、このクラスのequals(他のオブジェクト)とhashCode()メソッドを持っていますし、問題の原因となっている、親クラスのプロパティを使用していません。例えば、同じクラスの複数のいくつかの特性を有し、それらは親クラスを定義し、親クラスにだけ主キーであり、それは比較の際に被写体の部分を持って、それらが等しくないが、等しい(オブジェクトロンボクは、自動的に生成されたためその他)とhashCode()メソッドは、それによってエラーの原因となって、等しくなるように決定されます。
       この問題を解決するには、単純である。同時に、プラス@EqualsAndHashCode(callSuper =真)注釈で@Dataノートを使用している場合。例えば:

@Data
@EqualsAndHashCode(callSuper = true)
public class UserVO extends User {
	@ApiModelProperty(value = "statusName")
	private String statusName;

	@ApiModelProperty(value = "sexName")
	private String sexName;

	@ApiModelProperty(value = "shortName")
	private String shortName;

	@ApiModelProperty(value = "code")
	private String code;
}

 

公開された258元の記事 ウォンの賞賛1227 ビュー52万+

おすすめ

転載: blog.csdn.net/gdkyxy2013/article/details/104769897