Spring @preUpdate метод не вызывается для ассоциации oneToMany - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть две сущности Profil и ProfilFunctionality

@Entity
@EntityListeners({ MyListner.class })
public class Profil {

@Column(nullable = false)
@UiInfo(name = "Libellé")
private String lib;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "profilId", cascade = CascadeType.ALL)
@JsonIgnoreProperties(value = { "profilId" }, allowSetters = true)
private List<ProfilFunctionality> profilFunctionalities;

...

@Entity
@EntityListeners({ MyListner.class })
public class ProfilFunctionality{

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@UiInfo(name = "Profil")
private Profil profilId;

и класс слушателя MyListner

public class DomainObjectListener {

@PreUpdate
public void preUpdate(final Profil object) {
//code
}

Мой бизнес-класс :

@Service
@Transactional
@PermitAll
public class ProfilBP {

public Profil mergeProfilDTO(final ProfilDTO profilDTO) {

  Profil profil = findById(profilDTO.getProfilId());

  profil.setLib(profilDTO.getLib()); //preUpdate is called

  List<ProfilFunctionality> profilFunctionalities= new ArrayList<>();

  //code

  profil.setProfilFunctionalities(profilFunctionalities); //preUpdate not called


 //code

}

Проблема в том, что когда я редактирую библиотеку, вызывается метод preUpdate, но когда обновляется список ProfilFunctionality, метод preUpdate не вызывается.

...