User user1 = new User();
user1.setName("jiangxp");
user1.setAge(18);
user1.setId(1);
User user2 = new User();
user2.setName("jiangxp");
user2.setAge(18);
user2.setId(2);
两条user数据,ID完全不一样,结果明显是错的,没有做id的equals判断,修改为:
@EqualsAndHashCode(callSuper = true)才能得到正确结果.
调用其他团队某个接口的时候发现对方定义的Option里面分成了十几个选项,但是没有提供链式调用,这样每次set值就要好几行代码,使用起来很不方便,代码也不美观。
UserExample userExample = UserExample.builder()
.id(1)
.name("aaa")
.address("bbb")
.build();
@Data
: 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor
: 注在类上,提供类的全参构造
@NoArgsConstructor
: 注在类上,提供类的无参构造
@Setter
: 注在属性上,提供 set 方法
@Getter
: 注在属性上,提供 get 方法
@EqualsAndHashCode
: 注在类上,提供对应的 equals 和 hashCode 方法
@Log4j/@Slf4j
: 注在类上,提供对应的 Logger 对象,变量名为 log
链式访问,该注解设置chain=true,生成setter方法返回this(也就是返回的是对象),代替了默认的返回void。
@Data
@Accessors(chain=true)
public class User {
private Integer id;
private String name;
private Integer age;
public static void main(String[] args) {
//开起chain=true后可以使用链式的set
User user=new User().setAge(31).setName("pollyduan");//返回对象
System.out.println(user);
}
}
@TableName("user")
public class UserBean {
// ...
}
将 user 数据表和 UserBean 实体进行映射。
@ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改
@ApiModel(value="user对象",description="用户对象user")