我有两个数据库表。 Enterpise 可以有多个员工,员工可以在多个企业中使用。
Entrerprise.java
@Entity
public class Enterprise{
@id
public Long id;
public String enterpriseName;
@ManyToMany(mappedBy = "enterpriseList")
public List<Employee> employeeList;
}
Employee.java
@Entity
public class Employee
{
@id
public Long id;
public String firstName;
public String lastName;
public Integer age;
@ManyToMany
public List<Enterprise> enterpriseList;
}
如何更新 Enterprise 和 Employee 之间的某些更改。考虑性能的最佳方式是哪种?
假设我想更新en Employee 实体并拥有一个包含关联企业ID的列表。我该怎么办?
修改
我举个例子: 在我的数据库中,我有4家企业
Ep1 -> id 1
Ep2 -> id 2
Ep3 -> id 3
Ep4 -> id 4
以及在 Ep2 中工作的员工。
现在员工在 Ep1 和 Ep4 中获得了一些工作。 这意味着,我收到以下数据。
employeeID = 1
enterpriseList = [1,2,4]
现在,我可以使用更新查询吗?
我目前使用的解决方案是:
// get employee
Employee employee = entityHandlerService.getEmployeeById(employeeID);
// idList -> [1,2,4]
for(Long id : idList)
{
// prevent duplicate
if(employee.enterpriseList.stream().filter(e -> e.id.equals(id)).count() == 0)
{
// add enterprise to employee
Enterprise enterpise = entityHandlerService.getEnterpriseById(id);
employee.enterpriseList.add(enterprise);
}
}