重複の可能性:
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
}