Nutz 对继承POJO的有效操作(原创)

Posted on

Nutz 对继承POJO的有效操作(原创)

Nutz对POJO直接操作数据库是有效的,同时对继承类(子类)的操作,一定程序上是有效的。

如下: 建立POJO类testt:

import org.nutz.dao.entity.annotation.Column; import org.nutz.dao.entity.annotation.Id;

import org.nutz.dao.entity.annotation.Table; import org.nutz.dao.impl.NutDao;

@Table("venus_testt") public class testt {

@Id
private int id;

@Column("name")
private String name;

@Column
private String test;

}

子类test2: import org.nutz.dao.entity.annotation.Column;

public class test2 extends testt { @Column

private String haha;

}

测试父类,建立表成功。

    Dao dao = ioc.get(Dao.class, "dao");
    dao.create(testt.class, false);

Table: venus_test

字段信息 Field Type Comment id int(32) name varchar(50) test varchar(50) 测试子类,同样也成功:

       Dao dao = ioc.get(Dao.class, "dao");       
     dao.create(test2.class, false);

Table: venus_test

字段信息 Field Type Comment id int(32) haha varchar(50) name varchar(50) test varchar(50) 如果将子类指定表名:

@Table("venus_t_test") 则同样成功:

Table: venus_t_test

字段信息 Field Type Comment id int(32) haha varchar(50) name varchar(50) test varchar(50)

当需要对表进行精确控制时,可采用@ColDefine 如果,test2可修改如下:

import org.nutz.dao.entity.annotation.ColDefine;

import org.nutz.dao.entity.annotation.ColType; import org.nutz.dao.entity.annotation.Column;

import org.nutz.dao.entity.annotation.Table; @Table("venus_t_test")

public class test2 extends testt { @Column

@ColDefine(type=ColType.VARCHAR,width=128,notNull=true)
private String haha; }

测试后,结果如下:


希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途