169 похожих чатов

Ребят в чем может быть проблема? detached entity passed to persist связь

мениТуМени

энтити Юзер

@ManyToMany(cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "user_address",
joinColumns = @JoinColumn(name = "id_user"),
inverseJoinColumns = @JoinColumn(name = "id_address"))
@ToString.Exclude
Set<Address> addresses = new HashSet<>();


public void addAddress(Address address) {
addresses.add(address);
address.getUsers().add(this);
}

энтити Адрес

@Convert(converter = StringConverter.class)
@ManyToMany(mappedBy = "addresses")
private Set<User> users = new HashSet<>();

6 ответов

36 просмотров

каскад это не умный механизм укладывания дерева объектов в базу, он просто вызывает для потомка то же события что и для родителя ты перзистишь transient-родителя с detached-потомком и persist для потомка падает гуглится как события jpa и жизненный цикл сущности

Muzaffar-Rasulov Автор вопроса

проблема тут? addressRepository.saveAll(tAddresses); tAddresses.forEach(t -> { user.addAddress(t); log.info("Temporary Address data for new user by pin {}, is saved and data is: {}", user.getPin(), t); });

скорее проблема в каскаде, на saveAll spring-data проверяет тип объекта, и в твоём случае вызывает для него persist и из-за каскада это действие автоматом применяется и к потомку а тебе этого не надо, убирай каскад и делай сохранение руками

это все в одной транзакции?

Muzaffar-Rasulov Автор вопроса

да, но именно у адреса стоит асинк

Где? Пока полностью код

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта