我有JPA實體,它擴展了其他抽象類。我想使用@Data來避免編寫setter和getters,但我的equals和hashcode方法存在。Lombok - 在等於和哈希碼時執行@Data警告
我得到警告,但我覺得我不應該:
server\entity\User.java:20: warning: Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type.
@Data
^
在我的用戶等級:
@Data
@Entity
public class User extends AbstractAuditingEntity implements Serializable {
....
@Override
public boolean equals(Object o) {
...
}
@Override
public int hashCode() {
...
}
}
當我添加額外@EqualsAndHashCode(callSuper = false)來@Data我得到:
server\entity\User.java:21: warning: Not generating equals and hashCode: A method with one of those names already exists. (Either both or none of these methods will be generated).
@EqualsAndHashCode(callSuper = false)
我不想無禮,但消息是很明確的在這裏。你不明白什麼? –
@RC消息是「生成equals/hashCode實現,但沒有對超類的調用」。我的理解是,當方法實施時不會產生,所以這使我感到困惑。 –
@RC。他們是明確的,但行爲似乎是錯誤的。當手動定義'equals'和'hashCode'時,'@ Data'應該在沒有任何警告的情況下跳過它們。 – maaartinus