Hibernate 的新手。我只是想了解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() );
在第一行中,我得到了一条记录,名字为“Kevin”,姓氏为“Papad”
在等待时,我去了数据库并将名字更改为“史蒂夫”
session.get()
没有访问数据库并让我的值 firstname as 'Kevin' lastname as 'Papad' 这是错误的。
我一直在等待,因为任何人都可以同时更改数据库中的值(在上面的第 1 步和第 3 步之间),在这种情况下,我怎样才能在第 3 步中获得正确的值?即,“史蒂夫”的名字
我需要对我的代码进行哪些更改?
如果我的理解/方法有误,请纠正我。