Java 冬眠一个又一个的混乱!空列表!

Java 冬眠一个又一个的混乱!空列表!,java,database,hibernate,persistence,entity-relationship,Java,Database,Hibernate,Persistence,Entity Relationship,我有两张桌子。。。 例如,公司和员工(让我们保持简单) Employee.company\u id是外键 我的实体模型看起来像这样 员工 @ManyToOne(cascade = CascadeType.PERSIST) @JoinColumn(name = "company_id") Company company; 公司 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinColumn(name = "co

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

Employee.company\u id是外键

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

员工

@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "company_id")
Company company;
公司

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "company_id")
List<Employee> employeeList = new ArrayList<Employee>();
如果我得到我的公司对象,它的列表是空的

我从Hibernate文档中尝试了无数不同的方法

显然还没有试过正确的

我只想为我填充列表,或者找到一个合理的替代方案


非常感谢您的帮助,谢谢

你需要让关系双向。你的是两个单向的。将
mappedBy=“company”
添加到
employeeList
中。这告诉hibernate,员工列表只是从
员工
公司

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "company")
List<Employee> employeeList = new ArrayList<Employee>();
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER,mappedBy=“company”)
List employeeList=新建ArrayList();

我认为你不应该这样做
List employeeList=new ArrayList()

当您将拥有该列表的一方定义为拥有方(在您的情况下是员工而不是公司)时,应执行此操作。我认为每次加载公司实例时,都会收到employeeList的一个新实例,但不确定。但毫无疑问,没有必要每次都实例化新的ArrayList。

嘿!谢谢你的快速回复!我这样做了,但我仍然看到一个空列表。还有什么想法吗?谢谢不过,您可能希望从此规范中删除联接列。再次感谢,但我仍然看到一个空列表。是否可能hibernate没有更新到db或没有获取最新版本?谢谢
Employee e = new Employee();
e.setCompany(c); //c is an Company that is already in the database.
DAO.insertEmployee(e); //this works fine!
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "company")
List<Employee> employeeList = new ArrayList<Employee>();