【发布时间】:2021-11-27 11:21:57
【问题描述】:
我在存储库中看到了以下实现,我很困惑:
@Entity
@Getter
@Setter
@ToString(callSuper = true)
@NoArgsConstructor
public class Employee extends BaseEntity {
// properties
@Override
public int hashCode() {
return super.hashCode();
}
@Override
public boolean equals(Object other) {
return super.equals(other);
}
}
我的问题是:
-
实现这些方法是否合乎逻辑,因为它们已经在基类中实现了?是不是不需要在这里实现
hashCode()、equals()方法,在实体类的开头加上@ToString(callSuper = true)? -
在实体中添加这些方法,是不是每个方法都加3-4行代码,而是使用注解更好?
-
我认为这些方法存在误用。因为其中 2 个已实现,其中一个 (
toString) 是通过注释添加的。我认为所有这些都应该以相同的方式使用(全部通过注释或全部通过实现)。我错了吗?
【问题讨论】:
-
有没有人对 Spring 或 Spring Boot 没有经验?
-
@KarthikeyanVaithilingam CHICO?有回复吗?
-
注释是 lombok 的一部分,不是 spring 或 spring boot。这些注释用于减少代码并在您实现了没有注释的情况下具有默认实现。请注意,我不是反对者。
-
@KarthikeyanVaithilingam 非常感谢朋友,投了赞成票 ;)
标签: java annotations tostring lombok