上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5.6 实体类设计
在传统项目开发过程中,往往是先将需求分析抽取的实体设计成数据库表,然后根据数据库表建立对应的实体类,这与使用Spring Data JPA通过实体类自动生成数据库表的方式有很大的不同。因为Alan人事管理系统项目最初使用的持久层框架是MyBatis,所以这里先建立数据库表,然后根据表再建立对应的实体类。
在面向对象的设计中,当建立Employee类与Department类多对一的关系时,是在多的一方建立的,即在Employee类中添加类型为Department的dep属性。
Employee实体类代码:
Department实体类代码:
因为后续使用的安全框架Spring Security提供了一个名为User的类来维护已登录的用户,所以为了避免其与业务上的用户实体名混淆,故对用户、角色、权限三个实体名统一加“Sys”前缀。
在面向对象的设计中,SysUser类和SysRole类是多对多的关系,需要在SysUser类中添加泛型为 SysRole 的 List 类型的 roles 属性。如果要建立多对多的双向关联,则需要在SysRole方添加泛型为SysUser的List类型的属性。
要根据实际情况确定是建立单向关联,还是双向关联,在本项目中,由于有需要通过用户获取对应所有角色的场景,而没有通过某一个角色查询拥有该角色所有用户的需要,所以只需要建立用户和角色、角色和权限的单向多对多关联。
SysUse 实体类代码:
SysRole实体类代码:
SysPermission实体类代码: