我是否必须检索两次以使用spring mvc保存一对一关联?

时间:2016-05-21 01:00:56

标签: hibernate spring-mvc

我的应用程序中有一种情况,类似于下面的情况。

Entity1 : Employee
Entity2: Employer. 

以上实体都有一对多的关系。一个雇主有很多雇员。我准备了一个弹簧mvc表格。在该表格中,我检索了雇主ID和姓名并加载到<select>标签。

现在,如果我将员工姓名放在文本字段中。并在下拉列表中选择一个雇主。

如果我点击提交,spring mvc将提供员工姓名和雇主ID。

现在,要将员工存储到数据库中,我是否使用从表单中获取的ID再次检索雇主对象?

1 个答案:

答案 0 :(得分:0)

是的,您需要提及雇主,以便为新员工设定雇主。

使用em.find()从数据库中获取它并确保它存在:它将执行SQL查询以通过其ID查找雇主。

或者使用em.getReference()在雇主上获取延迟加载的代理,而不执行任何查询,假设它存在于数据库中。如果雇主没有实际存在(例如,如果您有外键约束条件,那么当插入雇员时,这当然会失败,例外情况。如果您不这样做:您的雇员将转介给不存在的雇主)