实体类编写规范
(1)继承 BaseEntity
(2)添加注解:@Entity,@DynamicInsert,@DodoEntity
例子:学生实体类
//javax.persistence.Entity
@Entity
@DynamicInsert
@DodoEntity(
name = "学生信息",
singleRecord = true,
actions = { DodoAction.ALL }
levelOne = @DodoMenu(name = "学籍管理", sortSeq = 4),
levelTwo = @DodoMenu(name = "基础信息管理", sortSeq = 1),
levelThree = @DodoMenu(name = "学生信息管理", sortSeq = 1)
)
public class Student extends BaseEntity {
//......
}
@DodoEntity
@DodoEntity.name 指定实体类模型名称
@DodoEntity.singleRecord 默认false,指定本模块是否为单记录,一般用于系统的全局配置表
@DodoEntity.actions 是个数组,可以添加一个或者多个,可选的取值范围:
(1)DodoAction.ADD 生成添加相关代码
(2)DodoAction.UPDATE 生成修改相关代码
(3)DodoAction.DELETE 生成删除相关代码
(4)DodoAction.VIEW 生成列表、查看、弹出筛选、统计筛选等相关代码
(5)DodoAction.EXPORT 生成导出Excel相关代码
(6)DodoAction.CHART 生成统计相关代码
(7)DodoAction.EXCELIMPORT 生成导入Excel数据相关代码
(8)DodoAction.EXCELUPDATE 生成批量导出到Excel相关代码
(9)DodoAction.ALL 生成全部代码
@DodoEntity.levelOne :一级菜单配置
@DodoEntity.levelTwo :二级菜单配置
@DodoEntity.levelThree :三级菜单配置
@DodoMenu.sortSeq 说明:
(1)@DodoEntity.levelOne时,sortSeq表示全部一级菜单的排列顺序,一级菜单的sortSeq取值从4开始,因为1 2 3 已经被框架基础实体类使用
(2)@DodoEntity.levelTwo为2时,sortSeq表示该二级菜单,在其父级(一级)菜单的所有子(二级)菜单中的排列顺序
(3)@DodoEntity.levelThree为3时,sortSeq表示该三级菜单,在其父级(二级)菜单的所有子(三级)菜单中的排列顺序
下面这个例子,所表示的模块菜单为:学籍管理 - 基础信息管理 - 学生管理
学籍管理
为一个一级菜单,排在第四位
基础信息管理
为一个二级菜单,排在学籍管理
的所有二级菜单的第一位
学生信息管理
为一个三级菜单,排在基础信息管理
的所有三级菜单的第一位
班级信息管理
为一个三级菜单,排在基础信息管理
的所有三级菜单的第二位
// 学生信息
@DodoEntity(
levelOne = @DodoMenu(name = "学籍管理", sortSeq = 4),
levelTwo = @DodoMenu(name = "基础信息管理", sortSeq = 1),
levelThree = @DodoMenu(name = "学生信息管理", sortSeq = 1)
)
public class Student extends BaseEntity {
//......
}
//班级信息
@DodoEntity(
levelOne = @DodoMenu(name = "学籍管理", sortSeq = 4),
levelTwo = @DodoMenu(name = "基础信息管理", sortSeq = 1),
levelThree = @DodoMenu(name = "班级信息管理", sortSeq = 2)
)
public class Classinfo extends BaseEntity {
//......
}
建议的包命名规范
/dodo/src/main/java/com/gentools/dodo_generate_config.properties
#(10)配置用于生成代码的包POJO类所在的包,多个包使用`|`隔开
dodo.code.generate.entity.basePackage=com.example.entity
以上配置表示自己编写的实体类所在的根包名,也是代码生成的时候,查找实体类的包名
建议:
所有实体类都按照菜单的顺序,来分包,这样一来,菜单顺序和包的组织顺序完全一致,非常方便维护
如上面例子,学生信息
和 班级信息
按照此规范,所在的包,应该是:
// school_system_4 对应的是 levelOne=@DodoMenu(name = "学籍管理", sortSeq = 4)
// baseinfo_1 对应的是 levelTwo=@DodoMenu(name = "基础信息管理", sortSeq = 1)
com.example.entity.school_system_4.baseinfo_1