會話的負載似乎是無用的,如果我需要創建一個pojo,爲什麼我需要使用load來創建一個不可調用的對象?什麼是session.load用於
@Test
public void testTwoSession() {
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Teacher t = (Teacher) session.load(Teacher.class, 2);
System.out.println(t);
session.getTransaction().commit();
System.out.println(t);
}
提交之前,對象將被打印,但在會議上承諾,打印操作將fail.now我很奇怪,爲什麼不直接用get方法來獲取教師目標。
load()不會檢查對象是否存在。在你的場景中,如果在數據庫中有一個外鍵約束,如果該對象不存在,你將在刷新時間得到一個異常。 –
,但我可能會寫一個如下所示的'Teacher findTeacher(int id);'接口,但是在提交之後會話是關閉的,也就是說,我永遠不能使用load方法來實現這個接口。 – ssj
@JBNizet你是對的,沒有檢查,只有異常「ObjectNotFoundException」。 – emgsilva