可能的重复:
JPA 中的并发(陈旧数据)问题
抱歉重复,但我认为我没有得到满意的答案,所以再次发布假设我有以下签名的方法
Object getData(int id) {
//create a entity manager
//get data frm db
//return data
}
updateData() {
Object obj = getData(id)
//get entity manager
//start transcation tx
//update
//commit tx
}
现在它会导致并发问题吗?在最坏的情况下数据会过时吗?例如,如果我getData
在我更新时,如果有人更新数据,我的数据是否updateData
会过时?现在我可以使用以下内容:我会解决问题吗?
Object getData(int id,Entitymanager em) {
//get data frm db using em
//return data
}
updateData() {
Object obj = getData(id)
//get entity manager em
//start transcation tx
//getdata using getData(id,em)
//commit tx
}