利用hibernate的映射关系,以及级联的设置很方便我们获取数据。但是我有这样一个需求,手机端通过json获取一个部门的信息,一个部门下面有上百人,每个人又有上百的历史任务,其他的数据不知凡几,我都建立的映射。这样一个获取部门的请求不就差不多把一个数据库度弄走了吗?怎么获得我只需要的数据。是不是除了映射数据库的实体类层,还需要一个专门为转换成json字符串的,实体层啊。不然获得一个就获得了关联的几乎所有数据。
如果用户和部门,在项目上划规一个模块,那用户可以有一个关联的部门实体。
如果用户和部门,属于两个模块,那用户实体里面会有一个部门id和一个部门名称,就足够用户列表页使用了。不会和部门实体做hibernate关联。
反之部门那边的set<用户>也是一样。
原则就是,不同模块间,做冗余字段,不要无限地关联下去,根据能承受的系统复杂度来分模块。像订单模块和用户模块,怎么都是不能搅到一起的,订单表也绝不会关联用户表,只会在订单实体里放个用户id,用户名,或者手机号这些。
即使是在一个模块里,有关联的两个实体,加上了lazy延迟加载,在查询前也可以通过criteria条件控制是否立即加载,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。