簡體   English   中英

使用外鍵保存hibernate對象而不加載依賴對象

[英]Save hibernate object with foreign key without loading the dependent object

當我們在Hibernate中保存一個對象時,我們將依賴對象保存為id而不是加載該對象並保存它。

例如:員工有一個部門外鍵,所以如果我們需要保存員工對象,那么我們將執行以下操作:

saveEmployee{
emp.setName(name);
Department department = session.find(Department.class,deptid);
emp.setDepartment(department);
}

現在,如果我們導入1000條記錄,並且我們在excel中將deptid作為單獨的列,那么將調用不必要的1000倍db來獲取相應的部門。

有沒有更好的方法可以在沒有對象到對象映射的情況下強制執行外鍵?

使用load方法而不是find

Department department = session.load(Department.class,deptid);

持久性提供程序將僅在該點創建一個代理,並假設該實體在數據庫中存在實際存在(如果不存在,則會記住錯誤)。

如果您的所有操作都使用一個transactinoal方法,您將獲得N個插入而沒有任何選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM