データベースが破損しないように Hibernate のトランザクションがどのように機能するかについての情報を見つけることができましたが、Hibernate がスレッド間で共有されるオブジェクトをどのように処理し、各スレッドがそれをデータベースに保存しようとするかを理解することは困難でした。
これは私の理論的な質問です:
1) 属性 (ssn、名前、住所) を持つ Person オブジェクトがあります。2) 3 つのスレッドがこの人物オブジェクトへの参照を持ち、各スレッドがメソッド savePersonToHibernate(...) を呼び出します。
public void savePersonToHibernate(Person person)
{
...
session.saveOrUpdate(person)
...
}
Hibernate は、同じオブジェクトをストレージに書き込む 3 つのスレッドにどのように対処しますか? すべてのトランザクションをキューに入れるので、最初のスレッドが行と識別子を作成 (ID を設定) すると、残りの 2 つのスレッドは (この場合) 変更なしでのみ更新しますか? または、実際にデータベースに 2 つまたは 3 つの行があり、現在のオブジェクトが最後に作成された識別子のみを参照している可能性はありますか?
ちょっと意味があることを願っています...私はキューシステムを作成しています.データは、その場で作成する必要があるカテゴリに参照する必要があります...そして、2つ以上のスレッドが両方が必要とするデータを取得する場合同じカテゴリを作成するために、重複したくありません。
これが理にかなっているといいのですが...どうしますか?