Hibernate OneToMany和ManyToOne混乱!空列表!

squ*_*izz 4 java database persistence entity-relationship hibernate

我有两张桌子......例如 - 公司和员工(让我们保持这简单)

Company( id, name );
Employee( id,  company_id );
Run Code Online (Sandbox Code Playgroud)

Employee.company_id是外键.

我的实体模型看起来像这样......

雇员

@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "company_id")
Company company;
Run Code Online (Sandbox Code Playgroud)

公司

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "company_id")
List<Employee> employeeList = new ArrayList<Employee>();
Run Code Online (Sandbox Code Playgroud)

所以,是的,我想要一份公司员工名单.

当我做以下事情......

Employee e = new Employee();
e.setCompany(c); //c is an Company that is already in the database.
DAO.insertEmployee(e); //this works fine!
Run Code Online (Sandbox Code Playgroud)

如果我然后得到我的公司对象它的列表是空的!

我尝试了Hibernate文档中不同的方法!

显然没有尝试过正确的!

我只是希望为我填充列表或找到一个明智的选择.

非常感谢帮助,谢谢!

sbl*_*ndy 5

您需要使关系双向.你的是两个单向的.添加mappedBy = "company"employeeList.这告诉冬眠的员工列表仅仅是裁判的从反向EmployeeCompany

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "company")
List<Employee> employeeList = new ArrayList<Employee>();
Run Code Online (Sandbox Code Playgroud)