JPA2锁定模式问题

时间:2015-05-04 17:03:51

标签: java mysql locking persistence jpa-2.0

亲爱的朋友们,我正在尝试使用Mysql和JPA2 persitence在我的webApp上使用锁定模式。我想用PESSIMISTIC.WRITE模式锁定记录,所以如果用户A试图修改记录,同时用户B尝试修改同一记录,则会出现一条消息并说“此记录正在使用中。稍后重试“。为此,我有一个数据表,当用户想要修改记录时,他可以选择它并单击“编辑按钮”,然后我有这个代码:

public void setLockMode(Nominativi nom) {
    //Nominativi nom is the record that user selected from datatable
    Nominativi n=em.find(Nominativi.class, nom.getIdnominativi(), LockModeType.PESSIMISTIC_WRITE);       
} 

所以用户A看到一个对话框页面,他可以在其中修改记录值。之后点击“保存按钮”并输入以下代码:

public void update(Nominativi nom) {
    em.merge(nom);
    em.flush();
}

我知道在flush()之后,记录不再被锁定,并且可供其他用户使用。 因此,当我尝试从2个不同的会话(同一台PC上的2个不同浏览器)编辑相同的记录时,我可以同时编辑记录而不会触发异常。我的错在哪里?我可以在同一台PC上使用2个不同的浏览器会话来模拟simoultaneos行为吗?

0 个答案:

没有答案