【发布时间】:2015-06-10 14:58:18
【问题描述】:
我有一个 Employee 实体(employee(id,name,company_id)):
@Entity
public class Employee {
@Id
@Column(name="ID")
private Integer id;
@ManyToOne(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name = "COMPANY_ID")
private Company company;
...
}
我有一个公司实体(company(id,name)):
@Entity
public class Company {
@Id
@Column(name="ID")
private Integer id;
@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name="COMPANY_ID")
@Where(clause="status_code = '1'")
private Set<Employee> employeeSet;
...
}
一家公司可以拥有更多员工,但一名员工一次属于一家公司。我加入了他们(我想获得状态为 1 的员工)并将级联设置为全部,但是当我将员工更新为另一家公司时,公司中的员工集不会刷新,旧的也不会刷新新公司。这是员工的更新方法:
sessionFactory.getCurrentSession().merge(employee);
我也尝试过 update(employee),但没有成功。我从代码中遗漏了什么?
【问题讨论】: