开发者社区> 问答> 正文

Hibernate中,继承映射还是使用"type"字段区分

个人觉得hibernate的继承映射是很好的东西,但是看了不少项目都是使用的一个type字段来区分类型,而我们老师也是这样做的。
从对象的设计来说,User和Admin可以是一类,使用继承映射恰恰合适。而使用type字段等,第一:不符合面向对象的思想,第二:字段冗余
但是,如果使用继承映射,我暂时想到的无法解决的问题包括:
对于角色转换,使用字段的方式可以通过改变这个字段来修改角色,比如User变为Admin,Admin变为User,这在一些权限管理的系统中肯定是会出现的。使用hibernate的继承映射的话,发现无法转换已经持久化的对象类型,如果通过先删再插入的方法,对于用的自动生成id的话,又无法主动指定id,所以不可行。
所以,如果使用hibernate的继承映射,我上面提到的两个问题:无法转换角色(类型)、自动生成列手动指定id 是否确实存在?
学生一个,所以实际开发经验还缺乏,所以不确定如果采用继承映射,是否还会有其他潜在的问题。 或者说,最好不实用继承映射,而是使用传统的type方式。

展开
收起
云栖技术 2016-06-02 14:06:23 2103 0
1 条回答
写回答
取消 提交回答
  • 社区爱好者,专为云栖社区服务!

    1.你说的无法转换角色(类型),一般的项目中角色是由超级管理员分配的user就是user,admin就是admin,为什么要将它进行转换,你创建一个role的实体表和映射表。
    2.如果是自动生成id,则无法手动制定ID,显示层会 报no result and imput,前些天我遇到过。

    2019-07-17 19:24:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载