資料實體(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註解使用;

######### #@Indexes:宣告一組資料實體的索引;###########@Index:宣告一個資料實體的索引;############@Comment:註釋內容;############@Default:為一個成員屬性或方法參數指定預設值;############看著這麼多的註解,是不是覺得寫實體很麻煩呢,不要急,框架提供了自動生成實體的方法,往下看:)#########註###:上面註解或註解參數中有一些是用於未來能透過實體物件直接建立資料庫表格結構(以及SQL腳本檔案)的,可以暫時忽略;######