元实体

1.概念

一个元实体的对象代表一种领域模型,一般来说也对应于一个映射到数据库的实体类。他的地位相当与jdk中的Class类。在实体元数据所涉及到的这几个模型中,元实体是一个提纲挈领的概念,从它出发,可以找到领域模型的属性、操作、功能、视图,正如从一个Class对象出发,能够找到它所对应的类的field,method等等。这个模型在metawork中的实体类是:net.lingdot.metawork.core.entity.meta.MetaEntity。

2.属性

元实体具有以下属性:

属性名 含义 备注
name 实体的中文名称 例如"用户"
clazz 对应实体类全名  
alias 一个字符串形式的标识 全局唯一,默认会采用类名首字母小写后的结果
fields 实体的属性集合 系统初始化的时候会找到所有的get方法上没有标记@Utility的属性作为该实体的属性
category 分类 仅用于显示、查找方便
folder 管理该类型的实体的页面文件存放的文件夹 默认会使用类名首字母小写后的结果

3.初始化

系统启动的时候,会遍历所有通过Hibernate映射到数据库的实体类,检查是否存在MetaEntity与之对应,如果没有,那么就会新创建一个MetaEntity对象,并反射取得该实体类的结构信息,设置到这个MetaEntity对象上,然后保存之。当然,在这个过程中,也初始化了相应的实体属性。

例如,我们把net.lingdot.metawork.core.entity.actor.User类映射到了数据库的MW_USER表,系统启动的时候,会检查是否存在一个MetaEntity对象,其clazz属性的值是"net.lingdot.metawork.core.entity.actor.User"。如果不存在,那么会新建一个MetaEntity对象,然后通过反射取得User类的相关信息,设置这个MetaEntity对象的各个属性(注意其中包括一个实体属性的集合),最后保存这个MetaEntity对象。

4.其他

因为MetaEntity对象查找、使用相当频繁,所以我们启用了Hibernate的二级缓存,把所有对象都会缓存在系统的内存中,同样处理的还有实体属性、操作、功能、视图等等。

团队
Group: Lingdot
Allan Zhang (allanz)
guyan6644@163.com
Jonney Xian (jonney)
jonney_82@163.com
亚运 祝 (zhuyy)
zhuyy0825@163.com
刘 洛麒 (llq667)
llq667@gmail.com
孙 海龙 (sunhl)
sunny.hl@163.com
宋颂 (ssong)
ss0070@163.com
张盈盈 (zyy200411)
04281118@bjtu.edu.cn
振强 许 (xuzz)
handstandboy2008@163.com
牛 俊力 (niujl)
05272140@bjtu.edu.cn
胡文锦 (cattyjin)
07122053@bjtu.edu.cn
苏 哲 (billy)
mvpierce34@gmail.com

标签

 
(没有)