【发布时间】:2018-10-01 10:42:48
【问题描述】:
我正在使用 Spring Boot 开发一个应用程序,因此我使用的 UML 类有 3 个实体:
- 管理员(ID、用户名、密码、电子邮件)
- 经理(ID、用户名、密码、电子邮件、电话)
- 客户(ID、用户名、密码、电子邮件、电话、地址)
Admin 与 Manager 有一对多/多对一的映射 也可以与实体 Client 一对多/多对一。
经过一些研究,我将其更改为 User/Role System ,因此实体 User 有这样的属性:
public class AppUser implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(unique = true)
private String username;
private String password;
@ManyToMany(fetch = FetchType.EAGER)
private Collection<AppRole> roles = new ArrayList<>();
}
以及角色实体
public class AppRole implements Serializable {
@Id @GeneratedValue
private Long id;
private String roleName;
}
我应该怎么做来实现其他实体,经理和客户,因为他们有其他不同的属性?
由于只有一个实体,我现在应该如何实现映射?
提前谢谢你。
【问题讨论】:
-
这是什么? UML 问题还是实现问题?
-
@ThomasKilian 首先感谢您的回答,这是一个 UML 问题,所以我可以在代码的最后实现这些类,我想用这些类的实现来解释我的问题。
-
你的问题不清楚,请多解释。
-
@manuka_m okey 让我向您解释一下:我正在使用三个实体 Admin 、 Manager 、 Client ,它们没有与帖子中相同的属性,之后我决定使用两个实体:AppUser 和 AppRole 而不是使用三个实体(使用 spring security everthing 对角色等都很好),在帖子中你可以看到我只声明了三个属性 id、用户名、密码,所以我应该添加另一个实体appUser中经理和客户的属性?或者我应该创建两个继承类 appUser 的实体管理器和客户端?
-
另一个问题关于我正在使用的ORM mappig(管理员和经理之间,还有管理员和客户端之间),管理员可以添加/删除经理/客户端..