數(shù)據(jù)實(shí)體(Entity)

2018-12-24 22:14 更新
數(shù)據(jù)實(shí)體注解
  • @Entity:聲明一個(gè)類為數(shù)據(jù)實(shí)體對象;

    value:實(shí)體名稱(數(shù)據(jù)庫表名稱),默認(rèn)采用當(dāng)前類名稱;

    @Entity("tb_demo")
    public class Demo {
        //...
    }
    
  • @Id:聲明一個(gè)類成員為主鍵;

    無參數(shù),配合@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:聲明一個(gè)類成員為數(shù)據(jù)實(shí)體屬性;

    name:實(shí)現(xiàn)屬性名稱,默認(rèn)采用當(dāng)前成員名稱;

    autoincrement:是否為自動增長,默認(rèn)為false;

    sequenceName:序列名稱,適用于類似Oracle等數(shù)據(jù)庫,配合autoincrement參數(shù)一同使用;

    nullable:允許為空,默認(rèn)為true;

    unsigned:是否為無符號,默認(rèn)為false;

    length:數(shù)據(jù)長度,默認(rèn)0為不限制;

    decimals:小數(shù)位數(shù),默認(rèn)0為無小數(shù);

    type:數(shù)據(jù)類型,默認(rèn)為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:聲明一個(gè)類為某數(shù)據(jù)實(shí)體的復(fù)合主鍵對象;

    無參數(shù);

    @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:聲明一個(gè)成員為只讀屬性,數(shù)據(jù)實(shí)體更新時(shí)其將被忽略;

    無參數(shù),配合@Property注解使用;

    @Entity("tb_demo")
    public class Demo {
    
        @Id
        @Property
        private String id;
    
        @Property(name = "create_time")
        @Readonly
        private Date createTime;
    
        // 省略Get/Set方法...
    }
    
  • @Indexes:聲明一組數(shù)據(jù)實(shí)體的索引;

  • @Index:聲明一個(gè)數(shù)據(jù)實(shí)體的索引;

  • @Comment:注釋內(nèi)容;

  • @Default:為一個(gè)成員屬性或方法參數(shù)指定默認(rèn)值;

看著這么多的注解,是不是覺得編寫實(shí)體很麻煩呢,不要急,框架提供了自動生成實(shí)體的方法,往下看:)

:上面注解或注解參數(shù)中有一些是用于未來能通過實(shí)體對象直接創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)(以及SQL腳本文件)的,可以暫時(shí)忽略;

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號