Задать вопрос
Ni55aN
@Ni55aN

Как удалить все Embeddable объекты из HashMap с определенным ключем?

@Embeddable
class Item{
String value
}

class R{

@...
Map<Integer, Item> values;
}


В базе есть список из R, у каждого есть Embeddable коллекция с целочисленным ключем, вот и по нему нужно удалить все пункты из Map. Как это сделать более эффективно?

Самый быстрый конечно, это выполнить нативный запрос, но это будет "отдаление" от Hibernate и т.д. и т.п.

Работающий, но ужасный метод

List<R> r = JPA.em().createQuery("from R").getResultList();

        for (R resp : r) {

            resp.values.remove(f.getId());
            JPA.em().persist(resp);
        }


Быстро и эффективно, но минимум внимания к Hibernate
Query qRemove = JPA.em().createNativeQuery("delete from r_values where val_id = :id");
        qRemove.setParameter("id", f.getId());
        qRemove.executeUpdate();
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Компьютерная академия «TOP»
    Тестирование ПО (QA)
    1 год
    Далее
  • OTUS
    Java-разработчик
    15 месяцев
    Далее
  • Учебный центр IBS
    JVA-075 Spring Advanced
    1 неделя
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы