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();
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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