首页 > 解决方案 > 具有不同角色的用户的休息控制器

问题描述

我正在制作一个体育场管理软件。我想在这个项目中创建一个休息 API。我正在使用 Spring Boot,Spring MVC。我有一些资源是“球员、教练、店主、助手、警卫”。我为每个资源创建了一个控制器。现在的问题是每个资源都有一些通用字段,例如姓名字段、地址字段、电话和电子邮件字段等等。在数据库中,我有一个名为“Person”的通用基础实体。我根据具体类继承策略通过 JPA 表创建了这些实体。现在在每个控制器中,我有一个方法来更新这些重复的字段和其他一些重复的任务,比如禁用帐户。我想要一个关于如何删除这种重复的建议。

标签: javaspring-bootspring-mvcspring-data-jpa

解决方案


我建议使用@MappedSuperclass。您可以创建一个包含所有常见字段的类 Person 并使用 @MappedSuperclass 进行注释。这个类将有自己的getter setter。因此,您可以将其他类(如教练等)扩展到这个超级类。这将保存您的代码以在每个类中定义字段和 getter/setter。

但是,您仍然必须在逻辑中获取/设置它们。这样做的好处是 - 您的实体是松散耦合的。您可以为同一字段的每个实体设置不同的逻辑。喜欢-您想要求教练拥有手机号码。但是学生可能有也可能没有手机号码。

但是,如果您想从任何地方删除 get/set 逻辑并将其集中化,我不确定是否可以实现。即使您使用表连接,get/set 也必须来自相应的类。


推荐阅读