Verifique o relacionamento que cheque tem, provavelmente você esta tentando apagar um objeto que esta amarrado com outro, verifique as propriedades do mapeamento de cheque ou popule cheque totalmente, antes de tentar apagar.
Ou pode ser que esta finalizando a session antes de apagar os demais.
Hammer
ele nao esta amarrado a nenhum outro objeto, ele faz referencia ao objeto Servicos e nao o contrario, isso de alguma forma causa esse certo tipo de problema? se sim como posso contorna-lo? retirando as ligacoes antes de apagar?
vanzella
Se cheque não tem atributo nenhum que ligue a serviço, não ha problema algum. Tente deixar a session aberta e teste. provavelmente deve ser ela que esta sendo fechada antes de concluir a transação.
Hammer
bem, fiz oq vc disse e o erro persiste, nao mudou em nada
vanzella
Me responde uma coisa, só esta dando erro na exclusão? nos outros metodos cruds esta funcionando?
Poste os seus dois beas, cheque e serviço, pra poder facilitar as coisas.
Hammer
todos os metodos de salvar e atualizar esta funcionando perfeitamente
ok Hammer no seu mapeamento de cheque você mapeou @ManyToOne(cascade = CascadeType.ALL) com relação a serviço, tudo certo até ai, qualquer crud vai ser feito em casacata, mas verifique se na hora que você esta consultando cheque se ele esta trazendo o objeto servico, pois quando mandar excluir ele tentara apagar serviço também.
Hammer
ele tenta excluir servico mesmo, como faco para excluir so o xeque e nao o servico?
vanzella
Olhe no seu mapeamento de cheques, no objeto referente a serviço esta mapeado para fazer tudo em cascata, ou seja consulta, update, delete. @ManyToOne(cascade = CascadeType.ALL).
Modifique o CascadeType.
Hammer
obg pela ajuda q vc esta me dando, mas sou meio novato em java, quals eria esse tipo q na hora de remover removese so o cheque e deixasse o servico q eles esta ligado intacto?
vanzella
existe varios tipos, PERSIST, MERGE, REMOVE, REFRESH e ALL geralmente sua IDE fornece os tipo com ctrl + backspace.
obg pela ajuda, escolhi isso: fetch = FetchType.EAGER
e esta funcionando do jeito q gostaria, remove so o cheque e nada mais, o servico fica do mesmo jeito
mas pode ocorrer problemas mais tarde?
vanzella
Hammer acredito que não ocorra problemas, mas depende da forma que esta tratando o banco.
Não gerando inconsistencias, você pode mapear do jeito que quiser.