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

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

    value:實體名稱(數(shù)據(jù)庫表名稱),默認采用當前類名稱;

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

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

    name:實現(xiàn)屬性名稱,默認采用當前成員名稱;

    autoincrement:是否為自動增長,默認為false;

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

    nullable:允許為空,默認為true;

    unsigned:是否為無符號,默認為false;

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

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

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

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

    無參數(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ù)實體的索引;

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

  • @Comment:注釋內容;

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

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

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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號