开发者社区> 问答> 正文

Java 遇见数据库时的对象设计问题

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

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

展开
收起
蛮大人123 2016-02-28 18:40:52 1983 0
2 条回答
写回答
取消 提交回答
  • 技术源于生活

    不需要,这是以前老的hibernate的思想。都用mybatis了自己查

    2019-07-17 18:50:00
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    完全不需要,数据库设计不一定要和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);
        }
    }    
    2019-07-17 18:50:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载