有两个实体:Employee.java
和Company.java
,具有双向@ManyToOne
关系;员工与公司有@ManyToOne
的关系,公司与员工有@OnetoMany
的关系。
当我触发命名查询时。
Select c from Company c where c.Id='100';
为员工返回了2条记录,但两行都有相同的数据,就像我在数据库中检查一样,我可以看到该列有两个不同的员工行,它们正在连接两个表。
任何人都可以指出我应该思考并尝试解决的方向吗?
答案 0 :(得分:0)
根据我的理解,您在上面的数据库查询中返回相同的结果集。为了解决这类问题,我们使用候选键。在您的程序中,如果您向公司表中再添加一列 count ,那么我们可以同时使用employee_id和count作为候选键。 Plz更新您的代码,以便我可以根据您的需要进行修改。
或者,您可以在公司表中添加自动增量ID,然后也可以使用