【发布时间】:2011-02-23 21:21:45
【问题描述】:
这是一种极其常见的情况,所以我期待一个好的解决方案。基本上我们需要更新表中的计数器。以网页访问为例:
Web_Page
--------
Id
Url
Visit_Count
所以在hibernate中,我们可能会有这样的代码:
webPage.setVisitCount(webPage.getVisitCount()+1);
mysql默认读取不关注事务的问题。因此,高流量网页的计数会不准确。
我习惯做这种事情的方式就是调用:
update Web_Page set Visit_Count=Visit_Count+1 where Id=12345;
我想我的问题是,我如何在 Hibernate 中做到这一点?其次,如何在 Hibernate 中进行这样的更新,这有点复杂?
update Web_Page wp set wp.Visit_Count=(select stats.Visits from Statistics stats where stats.Web_Page_Id=wp.Id) + 1 where Id=12345;
【问题讨论】:
标签: sql mysql hibernate transactions counter