关于网友提出的“ 怎么在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