I have two entities like this :
public class Client {
...
@OneToMany(mappedBy = "client", cascade = { CascadeType.DETACH, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.REMOVE },orphanRemoval = true, fetch=FetchType.EAGER)
@Fetch(value = FetchMode.SUBSELECT)
@Cascade({ org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN })
private List<CompanyContract> companyContracts;
...
}
CompanyContract :
public class CompanyContract {
...
@ManyToOne
@JoinColumn(name = "IDCLIENT")
private Client client;
...
}
And I want to delete a companyContract like this :
client.getCompanyContracts().remove(companyContract)
client = clientService.updateClient(client);
But the delete process is not happening
What am I doing wrong ?
EDIT
This is my updateClient method in my DAO :
@Override
@Transactional
public Client updateClient(Client client) {
return entityManager.merge(client);
}