Spring JPetStore iBatis向Hibernate迁移疑惑

目前在做hibernate的技术积累, 找了很多例子, 其中spring自带的jpetstore的代码结构是比较合理的,与大家讨论的DAO, DOMAIN等分层结构很一致.
但是这个例子是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检索数据.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值