Ich habe diesen Code -Snippet, der übereinstimmende Datensätze basiert, die auf einer zusammengesetzten Schlüsselzeichenfolge basieren, und es ist sehr langsam. < /p>
Hauptmethode: < /p>
Code: Select all
private Set existingValues(Set existingValuesBatched) {Set stringCompositeKeys = toStringCompositeKeys(existingValuesBatched);
return someObjectRepository.findExistingBySomeObjectCompositeKeys(stringCompositeKeys).stream().map(someObject -> new SomeObjectCompositeKey(someObject.getSrcId(), someObject.getType())).collect(Collectors.toSet());}
< /code>
toString: < /p>
private Set toStringCompositeKeys(Set compositeKeys) { return compositeKeys.stream().map(SomeObjectCompositeKey::toString).collect(Collectors.toSet()); }
< /code>
Abfrage: < /p>
@Query("SELECT p FROM SomeObject p WHERE CONCAT(p.srcId, ',', p.type) IN :someObjectCompositeKeys") List findExistingBySomeObjectCompositeKeys(@Param("someObjectCompositeKeys") Set someObjectCompositeKeys);