1. 程式人生 > >spring boot 實體類常用註解範例

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 時進行格式化操作