spring-mvc - 问个Java 遇见数据库时的对象设计问题

 vfh1150403 发布于 2022-11-04 09:49

用的 spring mvc + mybatis3 框架,假设有 用户与角色两张表, 以及一张关联表,分别对应的实体 userroleuser_role. 在 service 层, 为这 2 个对象分别建立 IUserService, IRoleService

我想问的是:

  1. 需要为中间表建对象user_role吗?
  2. 如果建了user_role, 需要建IUserRoleService吗?
  3. 中间表的关系维护职责应该放哪个service, 如删除用户同时需删除与角色的关系,删除角色,需删除与用户的关系等等。。

多谢指点!

3 个回答
  • 放哪似乎都可以,如果要避免争论,放到一个单独的命令里头

    2022-11-12 01:51 回答
  • 再请教一下, 获取用户对应的角色,是放在 getUserRoles(User user) 是放在 UserService还是 RoleService ? 判断依据是什么?

    2022-11-12 01:51 回答
  • 完全不需要,数据库设计不一定要和Java对象设计一致,在你的user对象里面包含role,或者role对象包含user就可以了。

    补充:

    public class UserService {
        @Autowired
        private UserRepository userRepository;
    
        @Autowired
        private UserRoleRepository userRoleRepository;
    
        public void deleteUser(User user) {
            userRepository.delete(user);
            userRoleRepository.deleteRoles(user);
        }
    }
    
    public class RoleService {
        @Autowired
        private RoleRepository roleRepository;
    
        @Autowired
        private UserRoleRepository userRoleRepository;
    
        public void deleteRole(Role role) {
            roleRepository.delete(role);
            userRoleRepository.deleteUsers(role);
        }
    }    
    
    2022-11-12 01:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有