jpa – JPQL:内部连接没有重复记录
以下是一个据称是Sun官方考试的一部分的问题:
鉴于答案是C,我认为这是不正确的.据我所知,JPA提供者将生成两个表的内连接的SQL.因此,在所有情况下,我们将获得4条记录.我已经进行了一对多关系的测试,并且包含了重复项. 谁错了,我还是太阳? 解决方法
答案来自Mike Keith,EJB 3.0共同规范主管:
规范中有两个与重复相关的陈述. > JOIN FETCH是JOIN的变体,但它确实表明类似的JOIN语义适用(除了选择了更多数据).规范(JPA v2.0的4.4.5.3节)给出了一个返回重复Department行的示例,尽管Employee对象不在select子句中. “如果未指定DISTINCT,则不会消除重复值.” 事实上,许多JPA提供商确实删除了重复项,原因如下: a)用户的便利性,因为一些用户在SQL中不够了解并且不期望它们b)通常不存在需要重复的用例c)可以将它们添加到结果集中,如果维护了对象标识,则会自动消除重复 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |