加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用外键保存hibernate对象而不加载依赖对象

发布时间:2020-12-15 01:08:31 所属栏目:Java 来源:网络整理
导读:当我们在Hibernate中保存一个对象时,我们将依赖对象保存为id而不是加载该对象并保存它. 例如:员工有一个部门外键,所以如果我们需要保存员工对象,那么我们将执行以下操作: saveEmployee{emp.setName(name);Department department = session.find(Department

当我们在Hibernate中保存一个对象时,我们将依赖对象保存为id而不是加载该对象并保存它.

例如:员工有一个部门外键,所以如果我们需要保存员工对象,那么我们将执行以下操作:

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

现在,如果我们导入1000条记录,并且我们在excel中将deptid作为单独的列,那么将调用不必要的1000倍db来获取相应的部门.

有任何更好的方法来做到这一点
Is it possible to have foreign key enforced without object-to-object mapping?

最佳答案
使用load方法而不是find:

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

持久性提供程序将仅在该点创建一个代理,并假设该实体在数据库中存在实际存在(如果不存在,则会记住错误).

如果您的所有操作都使用一个transactinoal方法,您将获得N个插入而没有任何选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读