发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

1(一个业务实体):m(25个业务实体)关系在hibernate中如何考虑

         
2007-09-15 18:28
赞助商链接

各位大侠
小弟有个问题是关于HIBERNATE的:
与教师teacher相关联的有
政治面貌,政治荣誉,学术荣誉 外语程度,学习简历,业务培训 配偶情况,家庭关系 军衔,警衔,职称评定,系列变动,工作经历,所在院系,照片,所带的课程等20个业务对象都是1:M的关系
难道在HIBERNATE中都要为 教师业务对象配置与之相关的其他20个业务对象吗?(配置成1:M的关系)这样的话系统会变的很慢的(一些懒加载lazy)这样一关联HIBERNATE的任务就会大大增加的。用不用配置双向的<one-to-many>关系.还是配置单一方向的<one-to-many>如果还有别的类似情况那就糟糕了·!!
还是不配置在程序中用外键来控制呢 ?

2007-09-17 12:08

你的问题不只是HIbernate使用问题,其实分两个:
1. 需不需这些关联,这些关联设计得正确与否?这是建模设计层面
2. 这是具体技术层面,hibernate中使用双向关联性能会好,包括懒加载等,以及查询时使用二级缓存等,这些都是Hibernate技术层面得优化。

但是技术层面的10步优化都比上建模设计一步优化。

学习一下DDD,领域驱动设计,以及对象设计原则:高聚合低关联,重新设计你们这20个业务对象的之间的关联以及这些对象本身 。去除不必要的关联,除非是聚合,否则去除一般关联。

关联模型      hibernate     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com