0
我努力學習獲得和我的代碼load.Example是這樣---get方法何時命中數據庫?
public class StudentTest {
public static void main(String[] args) {
SessionFactory sessionfactory=new Configuration().configure().buildSessionFactory();
Session session=sessionfactory.openSession();
Student student=new Student();
student.setName("Rajat");
student.setDate(new Date());
student.setCompany("Yash");
session.persist(student);
Transaction t1=session.beginTransaction();
session.getTransaction().commit();
student.setName("Prashant");
Student getStudent1=(Student)session.get(Student.class, 1);
System.out.println("-----------get------------------");
System.out.println(getStudent1);
session.close();
sessionfactory.close();
}
之間的區別,如果獲取訪問數據庫,爲什麼?輸出爲
Student [id=1, name=Prashant, company=Yash, date=Thu Apr 20 17:22:20 IST 2017]
而在數據庫中它將名稱保存爲Rajat。
我試圖負載,而不是得到那麼也將其返回名稱= PRASHANT和數據庫代理它是Rajat。在上面的例子中,我如何從數據庫中獲取實際數據? – Prashant
是的,它會返回相同的數據,在System.out.println(getStudent1)行之前,如果你正在使用load,那麼你的變量持有一個proxing而不是對它自己的對象的引用,一旦打印被執行,它將獲取從數據庫中獲取數據並使用它,無論哪種方式獲取實際數據 –
其實際數據如何?由於數據庫表具有name = Rajat,因此我得到的輸出是Prashant。 – Prashant