2015-07-21 82 views
-2

有两个实体:Employee.javaCompany.java,具有双向@ManyToOne关系;员工有@ManyToOne与公司的关系,公司与员工的关系有@OnetoManyJPA为数据库中的2个不同行返回相同数据

当我发射命名查询。 Select c from Company c where c.Id='100';为雇员返回2条记录,但两行都具有相同的数据,就像我在数据库中检查一样,我可以看到有两个不同的雇员行用于连接两个表的列。

任何人都可以提供一个指向我应该思考和尝试解决的方向吗?

+0

你能发布两行,因为他们在你的数据库确定返回哪一个(两次)。? – NickJI

+0

您正在查询公司,但退回了两名员工?我认为你必须重写你的问题,并显示一些代码... –

回答

0

正如我从你的写作理解你的数据库查询返回相同的结果集。为了解决这类问题,我们使用候选键。在你的程序中,如果你再添加一列计数公司表,那么我们可以使用employee_id和count作为候选键。 PLZ更新你的代码,所以我可以根据你的需要修改它。

或者,你可以在你的公司表中添加一个自动递增ID随后也将工作

+0

我的代码看起来像写在下面: –

+0

其中。 PLZ更新问题。 –

+0

实体关系是双向的,客户<----1:M---->车辆。车辆表的主键为CustomerId,它是Customer的主键。这些车辆具有与customerId相同的主键。当我通过JPQL查询获取该客户时:.If有两辆车与那位顾客“宝马”和“奥迪”有关......我从两辆车的主钥匙是相同的两次获得“宝马”。类似的问题在这里(不详细的解决方案):http: //stackoverflow.com/questions/5352357/hibernate-typedquery-getresultlist-returns-a-list-of-the-same-object ... –

相关问题