繁体   English   中英

如何在JPA中查找重复项?

[英]How to find duplicates in JPA?

我正在尝试在 CrudRepository 中创建一个方法,该方法能够在我的表中为我提供重复项。 我想找到一个同名且生日同一天的人。 为此,我认为它更容易,我想先找到所有相同的名字,然后我想过滤生日相同的名字。 Wished 方法是一个规范,但也可以进行查询。

JPA有办法吗?

完整表格:

ID     Name     Birthday 
1      Jean     11.10.2019     
2      Jones    10.10.2019   
3      Jean     11.10.2019 
4      Jean     12.10.2019     

第一个希望的结果,用相同的名字过滤:

ID     Name     Birthday 
1      Jean     11.10.2019
3      Jean     11.10.2019 
4      Jean     12.10.2019     

第二个希望的结果是:

ID     Name     Birthday 
1      Jean     11.10.2019     
3      Jean     11.10.2019 

因为名字“Jean”在同一天生日。

有人可以帮忙吗?

您可以使用本机查询,如:

SELECT Name, Birthday, COUNT(*)
FROM Users
GROUP BY Name, Birthday
HAVING COUNT(*) > 1

这可以与JOIN一起使用以获得所需的结果:

SELECT u.ID, u.Name, u.Birthday FROM Users u
JOIN (SELECT Name, Birthday, COUNT(*) FROM Users GROUP BY Name, Birthday HAVING COUNT(*) > 1) u2 
ON u.Name=u2.Name AND u.Birthday=u2.Birthday

而没有INNER JOIN的解决方案:

SELECT u.ID, u.Name, u.Birthday
FROM Users u, (SELECT Name, Birthday, COUNT(*) FROM Users GROUP BY Name, Birthday HAVING COUNT(*) > 1) u2 
WHERE u.Name = u2.Name AND u.Birthday = u2.Birthday

使用 Spring JPA 标准

请参阅https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/ 中的示例

https://www.baeldung.com/spring-data-criteria-queries

因为您没有显示您的实体,因此,我无法更明确地实现编码。

如何在 ArrayList 中查找重复项<object> ?<div id="text_translate"><p> 这是一个很常见的问题,但我找不到这部分:</p><p> 假设我有这个数组列表:</p><pre> List&lt;MyDataClass&gt; arrayList = new List&lt;MyDataClass&gt;; MyDataClass{ String name; String age; }</pre><p> 现在,我需要根据MyDataClass中的age查找重复项并将其删除。 如何使用<a href="http://www.javadb.com/remove-duplicate-items-from-an-arraylist" rel="nofollow">此处</a>描述的 HashSet 之类的东西?</p><p> 我想,我们需要覆盖 MyDataClass 中的equals吗?</p><ol><li> 但是,如果我没有这样做的奢侈呢?</li><li> 而HashSet实际上是如何在内部找到并且不添加重复项的? 我<a href="http://www.google.com/codesearch#TTY8xLpnKOE/src/share/classes/java/util/HashSet.java&amp;q=HashSet&amp;type=cs&amp;l=103" rel="nofollow">在 OpenJDK 中</a>看到了它的实现,但无法理解。</li></ol></div></object>

[英]How to find duplicates in an ArrayList<Object>?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM