我感觉只做单表映射就已经很好使了,做成多表映射操作起来很是繁琐,比如:
插入一个包含many-to-one较多的Pojo,就要生成几个many一方的对象,为的只是赋一下主键进去,再加入Pojo里
如果用单表映射的话,直接用BeanUtils 或者 BeanCopiers 拷一下就完工了。
然后对常用的多表查询也是,在数据库做个视图,然后对视图做个单表映射,用起来也很方便。
高手能不能解释下,hibernate做多表映射好在哪里?
------解决方案--------------------
是的,关联关系复杂的话,容易出异常。
我个人认为的一点好处:
1.级联查询,方便了数据的展示。
2.控制反转,维护了主外键的关联关系
一般设置一层映射关系,就可以了。
------解决方案--------------------
答案是:更加面向对象
首先要理解下Hibernate是一个什么杨的框架 干嘛的?
回答了这个问题就不难理解你所提到的问题
Hibernate是一个ORM 框架。最大的特点也是ORM。
提供多表映射的话使你的程序更加的面向对象,
使你能够把更多的时间花在面向对象的设计上,虽然看上去性能差一点,
但是给你提供了足够的拓展空间,
类的属性过多既不利于维护,开发的时候也很不利于测试,这些都是很明显的东西
如果都是单表另外一个问题就是造成了数据冗余(尽管有时候为了效率多了点冗余)
造成一定空间的浪费
数据表的字段过长加载的时候也相应的会有性能损失,只要你考虑下IO就可以知道
多表映射还有一个重要的作用就是重用
Hibernate的设计当中讲求 “关系模型粗粒度,域模型细粒度” ------多建立类少建立表,将类细粒度,将表粗粒度
你自己慢慢体会下