YMP-Online-Handbuch
/ 數據實體(Entity)
數據實體(Entity)
數據實體注解
@Entity:聲明一個類為數據實體對象;
value:實體名稱(數據庫表名稱),默認采用當前類名稱;
@Entity("tb_demo") public class Demo { //... }
@Id:聲明一個類成員為主鍵;
無參數,配合@Property注解使用;
@Entity("tb_demo") public class Demo { @Id @Property private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } }
@Property:聲明一個類成員為數據實體屬性;
name:實現屬性名稱,默認采用當前成員名稱;
autoincrement:是否為自動增長,默認為false;
sequenceName:序列名稱,適用于類似Oracle等數據庫,配合autoincrement參數一同使用;
nullable:允許為空,默認為true;
unsigned:是否為無符號,默認為false;
length:數據長度,默認0為不限制;
decimals:小數位數,默認0為無小數;
type:數據類型,默認為Type.FIELD.VARCHAR;
@Entity("tb_user") public class User { @Id @Property private String id; @Property(name = "user_name", nullable = false, length = 32) private String username; @Property(name = "age", unsigned = true, type = Type.FIELD.INT) private Integer age; // 省略Get/Set方法... }
@PK:聲明一個類為某數據實體的復合主鍵對象;
無參數;
@PK public class UserExtPK { @Property private String uid; @Property(name = "wx_id") private String wxId; // 省略Get/Set方法... } @Entity("tb_user_ext") public class UserExt { @Id private UserExtPK id; @Property(name = "open_id", nullable = false, length = 32) private String openId; // 省略Get/Set方法... }
@Readonly:聲明一個成員為只讀屬性,數據實體更新時其將被忽略;
無參數,配合@Property注解使用;
@Entity("tb_demo") public class Demo { @Id @Property private String id; @Property(name = "create_time") @Readonly private Date createTime; // 省略Get/Set方法... }
@Indexes:聲明一組數據實體的索引;
@Index:聲明一個數據實體的索引;
@Comment:注釋內容;
@Default:為一個成員屬性或方法參數指定默認值;
看著這么多的注解,是不是覺得編寫實體很麻煩呢,不要急,框架提供了自動生成實體的方法,往下看:)
注:上面注解或注解參數中有一些是用于未來能通過實體對象直接創(chuàng)建數據庫表結構(以及SQL腳本文件)的,可以暫時忽略;