java - 具有不同角色的用户的休息控制器
问题描述
我正在制作一个体育场管理软件。我想在这个项目中创建一个休息 API。我正在使用 Spring Boot,Spring MVC。我有一些资源是“球员、教练、店主、助手、警卫”。我为每个资源创建了一个控制器。现在的问题是每个资源都有一些通用字段,例如姓名字段、地址字段、电话和电子邮件字段等等。在数据库中,我有一个名为“Person”的通用基础实体。我根据具体类继承策略通过 JPA 表创建了这些实体。现在在每个控制器中,我有一个方法来更新这些重复的字段和其他一些重复的任务,比如禁用帐户。我想要一个关于如何删除这种重复的建议。
解决方案
我建议使用@MappedSuperclass。您可以创建一个包含所有常见字段的类 Person 并使用 @MappedSuperclass 进行注释。这个类将有自己的getter setter。因此,您可以将其他类(如教练等)扩展到这个超级类。这将保存您的代码以在每个类中定义字段和 getter/setter。
但是,您仍然必须在逻辑中获取/设置它们。这样做的好处是 - 您的实体是松散耦合的。您可以为同一字段的每个实体设置不同的逻辑。喜欢-您想要求教练拥有手机号码。但是学生可能有也可能没有手机号码。
但是,如果您想从任何地方删除 get/set 逻辑并将其集中化,我不确定是否可以实现。即使您使用表连接,get/set 也必须来自相应的类。
推荐阅读
- laravel - 另一个“不能保存多个复选框”和“必须是数组类型,给定字符串”
- java - 使用java流,将两个具有相同键但不同值的映射合并到一个元组?
- android - 如何从我当前的位置查找数据库中的位置?
- latex - 如何以快捷方式将 Scilab 控制台中的矩阵转换为乳胶?
- android - 使用 handler.postDelayed 暂停程序后恢复
- html - 为什么父div和孩子的身高不一样?
- css - css - 代号 1 中不支持的 CSS 属性透明度
- java - Hangman while 循环不使用 ||
- r - 如何通过 R 函数将多个参数传递给 ggplot,包括美学和比例格式?
- xamarin - 命名空间“Project.Android”中不存在类型或命名空间名称“Graphics”