有一个po对象A
在action层我使用bo进行操作,为了简化开发,这个bo继承po,也就是
B extends A
现在问题dao层保存B的时候,报类B不是一个实体的错误。原因是 A是注册过的实体,而B不是。
有什么好的解决方案?
[b]问题补充:[/b]
BeanUtils.copyProperties
我想过,是不是还有更好的办法,或者压根就不应该这么做!
你现在的问题是vo转换成po,才能保存。如果不用BeanUtils.copyProperties也可以,你要把B的属性值一个个地set进A中。
import org.apache.commons.beanutils.BeanUtils;
A a = new A();
BeanUtils.copyProperties(a, b);// 把B类中的属性值复制到A类中
save(a);// 以A实体来保存
别用BO继承PO 之所以有BO PO就是程序设计师们为了合理的分层才产生的 如果你这么弄 过几天你一看就能明白 时间长了 过几年你再看到你这段代码都头疼死 更别说别人了 维护难啊 如果你要这么做就得把BO注册了 只是多的字段你别映射 或者像楼上似的拷贝下属性 但实质又回来了 呵呵 其实我感觉你压根就别用BO继承PO 这样也废不了多少事儿 代码层次分明 以后好维护 呵呵