【发布时间】:2014-10-20 17:51:15
【问题描述】:
我有两个具有@OneToMany 双向关系的实体,如下所示:
@Entity
public class Company {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer companyId;
private String name;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="company")
Set<Employee> employees = new LinkedHashSet<>();
员工类
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer empId;
private String name;
private String address;
private String email;
@ManyToOne
@JoinColumn(name="companyId")
Company company;
最初我保存了 2 名员工,如下所示:
Employee emp= new Employee();
emp.setName("John");
emp.setEmail("John@gmail.com");
employeeRepository.save(emp);
Employee emp2= new Employee();
emp2.setName("Smith");
emp2.setEmail("smith@gmail.com");
employeeRepository.save(emp2);
现在我想保存为以下 2 家不同公司工作的一名员工:
Company company =new Company();
company.setName("Google");
Employee emp = employeeRepository.findOne(1);
company.getEmployees().add(emp);
emp.setCompany(company);
companyRepository.save(company);
Company company2 =new Company();
company2.setName("Microsoft");
company2.getEmployees().add(emp);
emp.setCompany(company2);
companyRepository.save(company2);
它仅将第二个公司 ID 更新到员工表中。我希望将两家公司都分配给该员工。我该怎么做?
【问题讨论】:
标签: spring hibernate jpa ejb-3.0