Não consigo deletar um objeto de uma lista(List ) contida em um Paciente.
Pelo que li em outros tópicos, o motivo é que o hibernate não excluí objetos que estão na sua sessão(Pq? é isso msm ou entendi errado?), como eu lodei o Paciente ele trouxe as atividadesFisica contidas nele, assim, não consigo excluir a atividadeFisica
Meu cenário.
@Entity
public class Paciente {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany
@Cascade(value = { CascadeType.ALL })
private Set<AtividadeFisica> atividadesFisica;
//...
public void addAtividadeFisica(AtividadeFisica atividadeFisica) {
getAtividadesFisica().add(atividadeFisica);
}
public void removeAtividadeFisica(AtividadeFisica atividadeFisica) {
getAtividadesFisica().remove(atividadeFisica);
}
}
@Resource
public class AtividadeFisicaController {
@Delete("/paciente/{paciente.id}/atividadeFisica/{atividadeFisica.id}")
public void deleta(Paciente paciente, AtividadeFisica atividadeFisica) {
paciente = pacientes.load(paciente.getId());
paciente.removeAtividadeFisica(atividadeFisica);
pacientes.update(paciente);
atividadesFisica.delete(atividadeFisica);
result.nothing();
}
}
Como eu deveria proceder nesse caso? Já que dessa forma eu não consigo remover uma atividade contida em um paciente.