Exclusão passando a Foreign Key ao invés do Codigo

09/09/2019

0

Preciso excluir os Itens do Agendamento e o hibernate nao permite, quando instancio o AgendamentoItensDAO.excluir passando o agendamento como chave extrandeira, o Hibernate entende que quero excluir o agendamento. Como crio a "query" usando o hibernate pra excluir todos os itens do agendamento que tenham o agendamento_codigo que estou passando no parametro do metodo excluir?

Tenho essas as Entidades Agendamento e AgendamentoItens:

@Entity
@SuppressWarnings("serial")
public class AgendamentoItens extends GenericDomain {
@JoinColumn(nullable = true)
@OneToOne
private Agendamento agendamento;
@JoinColumn(nullable = true)
@ManyToOne
private ClienteResponsavel clienteResponsavel;
}

@Entity
@SuppressWarnings("serial")
public class Agendamento extends GenericDomain {
@JoinColumn(nullable = true)
@OneToOne
private AgendamentoItens agendamentItenso;
@JoinColumn(nullable = true)
@ManyToOne
private ClienteResponsavel clienteResponsavel;
}

excluir(Agendamento agendamento)
{
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Transaction transacao = null;
try {
//preciso excluir na tabela agendamentoDetalhes(codigo, agendamento_codigo, cr_codigo) todo registro
//que contenha o ''agendamento_codigo'' que estou passando no objeto ''agendamento'';
transacao = sessao.beginTransaction();
sessao.createCriteria(Agendamento.class);
sessao.createFilter(agendamento, "agendamento_codigo");
sessao.delete(agendamento);
transacao.commit();
} catch (RuntimeException erro)
{
if (transacao != null)
{
transacao.rollback();
}
throw erro;
} finally
{
sessao.close();
}
}
Arnaldo Medeiros

Arnaldo Medeiros

Responder

Posts

10/09/2019

Giovanny Montinny

Tenta usar na classe Agendamento @OneToOne(cascade=CascadeType.REMOVE)
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar