浏览 4441 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-19
但是这个例子是spring+iBatis做的, 我在往Hibernate迁移时产生了很多疑问, 请大家指点一下. 首先, 迁移的目标是仅修改DAO实现层, 不能修改DAO接口和域对象. 这样做的目的也是为了测试更换持久层的可能性和代价.在这个前提下用hibernate tools产生的PO类和HBM文件显然和已有的域对象结构存在很大出入, 我的解决方法是: 针对查询操作: 1. 对域对象, 再做一套查询用的PO和HBM(从多个实体PO里关联查询) 2. 对查询出来后的PO再用PropertyUtils.copyProperties把值拷贝到域对象里 3. 最后返回域对象 针对保存操作: 1. 把域对象的值拷贝到多个PO里 2. 分别保存每个PO 现在的疑惑是: 1. 原有的域对象结构非常简单, 而PO为了保持对象间关系, 结构复杂, 两者在做copy时需要大量手工转换, 对list结果集还要做循环转换, 这样做是否合理?有没有更好的方案 2. robbin曾提到Hibernate的PO就是非贫血的域模型, 那么PO是否能够直接拿来做域模型对象用? (这个又涉及了PO是否该传到view层的问题) 3. 为了整体简单, 能否所有PO不采用对象建模, 而是仅和表结构对应是否可行? 如主从表结构的PO里, 主表的PO属性里去掉对应子表的Set,由开发员自己编码来处理关联关系, 需要时调用子表的DAO检索数据. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-09-19
针对po,改动较少!
ibatis与hibernate应该是通用的! 在没有abator之前,我都用hibernate的DB2DO生成工具! 不过有一点是比较棘手的! 在ibatis里,延迟加载的性能没有表连接来得直接,方便,快速! 原因是大数据量有分页在,不会有任何性能损失!反而延迟让可读性变得很低! 所以ibatis里,多半是直接做连接查询的! |
|
返回顶楼 | |