首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

有关问题:hibernate 注解,Criteria 查询时,更新表字段

2012-09-20 
问题:hibernate 注解,Criteria 查询时,更新表字段目的:查询某表中数据问题:hibernate 注解,Criteria 查询

问题:hibernate 注解,Criteria 查询时,更新表字段

目的:查询某表中数据

问题:hibernate 注解,Criteria 查询表数据时,更新表字段信息。

?

hibernate 查询语句:

Criteria criteria = this.getSession().createCriteria(ZhiHuiTongTransfer.class);
??????? List<Integer> allStatus = new ArrayList<Integer>();
????????? ....................

??????? PageExt page = new PageExt();
??????? page.setPageSize(pageSize);
??????? page.setPageNo(pageNo);
??????....................
?????? setPageParameter(criteria, page);
??????? List<ZhiHuiTongTransfer> list = criteria.list();
??????? page.setResult(criteria.list());
??????? return page;

打印语句如下:

select top 50 this_.id as id22_0_, this_.createTime as createTime22_0_, this_.finishTime as finishTime22_0_, this_.handler as handler22_0_, this_.isFinish as isFinish22_0_, this_.modityTime as modityTime22_0_, this_.operator as operator22_0_, this_.operatorActive as operator8_22_0_, this_.payMoney as payMoney22_0_, this_.payeeBank as payeeBank22_0_, this_.payeeBankAccount as payeeBa11_22_0_, this_.payeeName as payeeName22_0_, this_.payerBank as payerBank22_0_, this_.payerBankAccount as payerBa14_22_0_, this_.payerBankType as payerBa15_22_0_, this_.payerName as payerName22_0_, this_.paymentMethod as payment17_22_0_, this_.phone as phone22_0_, this_.refundMoney as refundM19_22_0_, this_.refundType as refundType22_0_, this_.remark as remark22_0_, this_.sysPayeeBank as sysPaye22_22_0_, this_.transId as transId22_0_, this_.transSerialNumber as transSe24_22_0_, this_.transferAmount as transfe25_22_0_, this_.transferStatus as transfe26_22_0_ from mall.ZhiHuiTongTransfer this_ where this_.transferStatus in (?, ?, ?, ?) and this_.payerBankType<>? and this_.payerBankType<>? and this_.operatorActive=? order by this_.createTime desc
Hibernate: update mall.ZhiHuiTongTransfer set isFinish=? where id=?
Hibernate: update mall.ZhiHuiTongTransfer set isFinish=? where id=?
Hibernate: update mall.ZhiHuiTongTransfer set isFinish=? where id=?

?

原因:?

? /**
???? * 是否完成
???? */
??? private Boolean isFinish;
public Boolean getIsFinish() {
??????? return isFinish;
??? }

??? public void setIsFinish(Boolean isFinish) {
??????? isFinish = isFinish;
??? }

?

解决方法:哎 不难看出是set方法引起的更新问题。? public Boolean getIsFinish() {
??????? return this.isFinish;
??? }

??? public void setIsFinish(Boolean isFinish) {
??????? this.isFinish = isFinish;
??? }

疑惑:我只是做查询,为什么会直接更新呢。还请高人赐教

看看方法有没有配成事务的。有没有配成自动提交的。hibernate会在有事务的方法里自动提交po.如果用spirng,是在service层查询,确认该方法有没有配成read-only.good luck.你能不能放在问答里,好让我加些问答分。 看看方法有没有配成事务的。有没有配成自动提交的。hibernate会在有事务的方法里自动提交po.如果用spirng,是在service层查询,确认该方法有没有配成read-only.good luck.你能不能放在问答里,好让我加些问答分。
DAO 和service层确实有事务主角@Transactional,你是说hibernate会对有实物的po自动提交吗。我在试试,很感谢。 6 楼 zhmy0129 2011-04-26   zhangchen208 写道是否有修改方法,搭上断点看是否调用..原来我也碰见过这个问题后来发现是页面跳转出现问题..
恩 断点调试了。在criteria.list()的时候出的sql语句,包含一条查询和三条更新 7 楼 lai555 2011-05-27   事务原因。。

热点排行