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

21 Авг 2019 в 06:29
206 +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 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир