Эффективные поиски, чтобы найти соответствующие записи для сбора композитных ключейJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Эффективные поиски, чтобы найти соответствующие записи для сбора композитных ключей

Сообщение Anonymous »

Основная проблема, с которой я столкнулся, заключается в том, что мне нужно провести страницу из API, чтобы получить набор из 500 тысяч записей. Я создал уникальный композитный ключ на основе приведенных ниже полей, чтобы найти, существует ли какой -либо из идентификаторов в БД. Если они это делают, то я знаю, что могу сделать либо обновление на основе этих идентификаторов (установить новые значения на основе существующих идентификаторов), либо удалить на основе этих идентификаторов/затем сохранение. Мне нужен способ сделать поиск на основе коллекции (набор композитных клавиш выше). Есть ли более эффективный способ сделать это, кроме Tostring здесь? (См. Код ниже) < /p>
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>
Query: < /p>
@Query("SELECT p FROM SomeObject p WHERE CONCAT(p.srcId, ',', p.type) IN :someObjectCompositeKeys")
List findExistingBySomeObjectCompositeKeys(@Param("someObjectCompositeKeys") Set someObjectCompositeKeys);


Подробнее здесь: https://stackoverflow.com/questions/794 ... osite-keys
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»