欢迎来到我的博客来阅读我写的文章,希望我写的文章能帮助到大家!
看到错误什么的欢迎指出来,有不足请补充!

请看下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* 用户的实体类 */
@Data
@TableName("user")
public class User implements Serializable {

public static final Long serialVersionUID = 1L;

@JsonProperty("user_id") //jackson的注解,用于进行属性格式化!
@TableId(type = IdType.AUTO)
private Integer userId;

@Length(min = 6) // 设置长度
private String userName;

//忽略属性 不生成json 不接受json数据 @JsonIgnore
// @JsonInclude(JsonInclude.Include.NON_NULL) + null 当这个值不为null的时候生成json,为null不生成
// 不影响接收json
@JsonInclude(JsonInclude.Include.NON_NULL)
@NotBlank
private String userPassword;

@JsonInclude(JsonInclude.Include.NON_NULL)
@NotBlank
private String userPhonenumber;
}

解答如下

  • 这个序列化ID起着关键的作用,它决定着是否能够成功反序列化,简单来说,java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。