我是Hibernate的新手,这是我在stackoverflow中的第一篇文章。 我使用Hibernate 3.3.2 GA和MySql作为数据库。
这是我的问题:
我正在读取状态='N'的数据库表的记录。
List sendSmsPropertiesList=hbSession.createQuery("from TSendSms where status='N' ").setMaxResults(1).list();
我有两个线程使用上面的sql访问同一个表来从DB获取状态='N'的记录(例如,如果有3条状态='N'的记录,第一个线程应该获取第一个记录,第二个线程应该获取第一个记录线程应该获取第二条记录)。但两者都取得相同的记录(第一记录)。这里我需要在一个线程获取一个线程后锁定表行,当第二个线程到来时它应该转到第二行。
你可以帮助我解决上面的例子吗?
提前致谢。
答案 0 :(得分:-1)
将状态修改为'Y'
或将其更新到某处,以便处理相同的记录。从代码和最佳方式来看,如果你不能修改它就更新它的状态,那么为它添加一个新列。