休止状態の初心者。session.get()
「オブジェクトが既にキャッシュされている場合にデータベースのヒットを回避する」方法を理解しようとしています
List<Employee> employees1 = session.createCriteria(Employee.class).list();
Main main = new Main();
try {
synchronized (main) {
main.wait(10000);
}
} catch (InterruptedException e) {e.printStackTrace();}
Employee employees2 = (Employee)session.get(Employee.class, new Long(1));
System.out.println(employees2.getFirstname() + " , "+ employees2.getLastname() );
最初の行で、ファーストネームが「ケビン」、ラストネームが「パパド」のレコードを取得しました
それが待っている間に、私はデータベースに行き、名前を「スティーブ」に変更しました
session.get()
データベースにヒットせず、ファーストネームを「ケビン」、ラストネームを「パパド」として値を取得していますが、これは間違っています。
その間(上記の1番目と3番目のステップの間)誰でもデータベースの値を変更できるので、私は待ち続けました。その場合、3番目のステップで正しい値を取得するにはどうすればよいですか? つまり、'steve' のファーストネーム
コードにどのような変更を加える必要がありますか?
私の理解/アプローチが間違っている場合は修正してください。