您的位置:首页 > 其它

BeanUtils用法

2015-11-08 23:26 281 查看
老早以前也用过spring的提供的这个BeanUtils工具类,但好久不用,就忘得差不多了,今天看到同事又用到了,就记录下来。这个工具类的主要用途是将两个同类型的两个实体的属性值进行copy。当然它里面还有别的方法,供我们使用。这里,用到它的主要场景是:同事在把一个DO实体从数据库查询出来,再新new一个实体,把所有的属性值设置成从DB中查询出来的实体(包括ID值),再对这个新实体进行保存,(实际上它想做的操作是把DB中查询出的实体对应的数据进行更新)结果就会直接报一个错:org.hibernate.NonUniqueObjectException:a
different object with the same identifier value was already associated with the session:[com.xx.xx.xx.model.xxDO#18]

这个错的意思是说:在同一个会话中存在两个ID值相同的实体对象,而这是hibernate所不允许的,这时,就可以用到BeanUtils这个工具类,其用法就是:

UndoInfoDO undoInfo = new UndoInfoDO ();//新new的一个实体

UndoInfoDO undoInfoDO = undoList.get(0);//从DB中取得的数据返回的list集合中获得的DB实体对象

undoInfo.setDataState(undoInfoDO.getDataState());

undoInfo.setIsHidden(undoInfoDO.getIsHidden());

BeanUtils.copyProperties(undoInfo, undoInfoDO);//把undoInfo实体中,与undoInfoDO实体中属性值不一样的属性复制到undoInfoDO

undoInfoDAO.doSave(undoInfoDO);

这样就可以直接保存undoInfoDO实体。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: