spring boot 实体类常用注解范例

定义User.java实体类

 
  
  1. @Data
  2. @Entity
  3. public class User {
  4. @Id
  5. @GeneratedValue
  6. private Long id;
  7. @Column(nullable = false)
  8. private String name;
  9. @Column(nullable = false, unique = true, updatable = false)
  10. @JsonProperty(value = "email")
  11. private String username;
  12. @Column(nullable = false)
  13. @JsonIgnore
  14. private String password;
  15. @Column(nullable = false)
  16. @JsonIgnore
  17. private String salt;
  18. @Column(nullable = true)
  19. private Date birthday;
  20. @Column(nullable = false)
  21. private String sex;
  22. @Column(nullable = true)
  23. @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
  24. private Timestamp access;
  25. @Column(nullable = true)
  26. @JsonFormat(pattern="HH:mm:ss")
  27. private Time accessTime;
  28. @Column(nullable = false)
  29. private Integer state;
  30. @Column(nullable = false, insertable = false, updatable = false)
  31. @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
  32. private Timestamp created;
  33. @Column(nullable = false, insertable = false, updatable = false)
  34. @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
  35. private Timestamp updated;
  36. }
  • @Data 是 lombok 的注解,自动生成Getter,Setter,toString,构造函数等

  • @Entity 注解这是个实体类

  • @Table 注解表相关,如别名等

  • @Id 注解主键,@GeneratedValue 表示自动生成

  • @DynamicUpdate,@DynamicInsert 注解可以动态的生成insert、update 语句,默认会生成全部的update

  • @Column 标识一些字段特性,字段别名,是否允许为空,是否唯一,是否进行插入和更新(比如由MySQL自动维护)

  • @Transient 标识该字段并非数据库字段映射

  • @JsonProperty 定义 Spring JSON 别名,@JsonIgnore 定义 JSON 时忽略该字段,@JsonFormat 定义 JSON 时进行格式化操作



你可能感兴趣的:(Spring,Boot)