您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> 怎么在hibernate中通过联合主键更新表记录?

怎么在hibernate中通过联合主键更新表记录?

来源:网络整理     时间:2016/8/20 13:04:34     关键词:

关于网友提出的“ 怎么在hibernate中通过联合主键更新表记录?”问题疑问,本网通过在网上对“ 怎么在hibernate中通过联合主键更新表记录?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 怎么在hibernate中通过联合主键更新表记录?
描述:

String hqlUpdate = "update ProviderResource set environmentScore = :environmentScore,serviceScore = :serviceScore,priceScore = :priceScore,totalScore = :totalScore where id.providerId = :providerId and id.resourceId = :resourceId";
hibernateSession.createQuery(hqlUpdate)
.setInteger("environmentScore",(int)totalEnvironmentScore)
.setInteger("serviceScore",(int)totalServiceScore)
.setInteger("priceScore",(int)totalPriceScore)
.setInteger("totalScore",(int)totalScore)
.setString("providerId",mr.getProviderId())
.setString("resourceId",mr.getResourceId())
.executeUpdate();
这样老报错,说是找不到provider_id字段
id中的providerId属性就是跟provider_id字段对应的啊


解决方案1:

ProviderResourceId id = new ProviderResourceId();
id.setProviderId(mr.getProviderId());
id.setResourceId(mr.getResourceId());
ProviderResource pr = hibernateSession.load(ProviderResource.class, id);
pr.setEnvironmentScore((int)totalEnvironmentScore);
...设置要更新属性, 省略
hibernateSession.save(pr);

解决方案2:

好像这样是不行
可以考虑用load和save方法

解决方案3:

先mark一下,顶

解决方案4:

贴一下hbm文件看看


以上介绍了“ 怎么在hibernate中通过联合主键更新表记录?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3424102.html

相关图片

相关文章