Как добавить новые данные в таблицу? Есть @Entity в которой хранится в качестве проперти @ElementCollection Map.
Как правильно сделать так, чтобы при изменении Map через .setMap(...) в таблицу добовлялись только новые строки, при этом не удалялись те, которые в таблице уже есть.
Заранее большое спасибо!

21 Авг 2019 в 06:29
172 +1
0
Ответы
1

Чтобы добавить новые данные в таблицу, не удаляя уже существующие данные, вы можете воспользоваться методом merge() EntityManager.

Пример:

@Entity
public class YourEntity {
@ElementCollection
private Map<K, V> yourMap;
// геттеры и сеттеры
}
// Ваш сервис или DAO класс
@Autowired
private EntityManager entityManager;
@Transactional
public void updateMap(Long entityId, Map<K, V> newMap) {
YourEntity entity = entityManager.find(YourEntity.class, entityId);
// Добавляем новые данные в существующую Map
entity.getYourMap().putAll(newMap);
entityManager.merge(entity);
}

Этот код найдет сущность YourEntity по entityId, добавит новые данные в yourMap и сохранит изменения в базе данных, при этом не удаляя уже существующие данные в таблице.

Не забудьте добавить @Transactional для корректной работы транзакции.

20 Апр в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 86 378 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир