簡體   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