个人觉得hibernate的继承映射是很好的东西,但是看了不少项目都是使用的一个type字段来区分类型,而我们老师也是这样做的。
从对象的设计来说,User和Admin可以是一类,使用继承映射恰恰合适。而使用type字段等,第一:不符合面向对象的思想,第二:字段冗余
但是,如果使用继承映射,我暂时想到的无法解决的问题包括:
对于角色转换,使用字段的方式可以通过改变这个字段来修改角色,比如User变为Admin,Admin变为User,这在一些权限管理的系统中肯定是会出现的。使用hibernate的继承映射的话,发现无法转换已经持久化的对象类型,如果通过先删再插入的方法,对于用的自动生成id的话,又无法主动指定id,所以不可行。
所以,如果使用hibernate的继承映射,我上面提到的两个问题:无法转换角色(类型)、自动生成列手动指定id 是否确实存在?
学生一个,所以实际开发经验还缺乏,所以不确定如果采用继承映射,是否还会有其他潜在的问题。 或者说,最好不实用继承映射,而是使用传统的type方式。
1.你说的无法转换角色(类型),一般的项目中角色是由超级管理员分配的user就是user,admin就是admin,为什么要将它进行转换,你创建一个role的实体表和映射表。
2.如果是自动生成id,则无法手动制定ID,显示层会 报no result and imput,前些天我遇到过。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。