spring boot 實體類常用註解範例
阿新 • • 發佈:2019-02-10
定義User.java實體類
- @Data
- @Entity
- public class User {
- @Id
- @GeneratedValue
- private Long id;
- @Column(nullable = false)
- private String name;
- @Column(nullable = false, unique = true, updatable = false)
- @JsonProperty(value = "email")
- private String username;
- @Column(nullable = false)
- @JsonIgnore
- private String password;
- @Column(nullable = false)
- @JsonIgnore
- private String salt;
- @Column(nullable = true)
- private Date birthday;
- @Column(nullable = false)
- private String sex;
- @Column(nullable = true)
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
- private Timestamp access;
- @Column(nullable = true)
- @JsonFormat(pattern="HH:mm:ss")
- private Time accessTime;
- @Column(nullable = false)
- private Integer state;
- @Column(nullable = false, insertable = false, updatable = false)
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
- private Timestamp created;
- @Column(nullable = false, insertable = false, updatable = false)
- @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
- private Timestamp updated;
- }
-
@Data 是 lombok 的註解,自動生成Getter,Setter,toString,建構函式等
-
@Entity 註解這是個實體類
-
@Table 註解表相關,如別名等
-
@Id 註解主鍵,@GeneratedValue 表示自動生成
-
@DynamicUpdate,@DynamicInsert 註解可以動態的生成insert、update 語句,預設會生成全部的update
-
@Column 標識一些欄位特性,欄位別名,是否允許為空,是否唯一,是否進行插入和更新(比如由MySQL自動維護)
-
@Transient 標識該欄位並非資料庫欄位對映
-
@JsonProperty 定義 Spring JSON 別名,@JsonIgnore 定義 JSON 時忽略該欄位,@JsonFormat 定義 JSON 時進行格式化操作