1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Registros filhos sendo apagados junto com os pais dentro do banco de dados

Eu queria que desse um erro sempre que eu tentasse apagar um registro que tivesse filhos no meu banco de dados, eu já setei a regra ON DELETE como "Restrict" mas ele está apagando mesmo assim... Como faço para que isso aconteça?

esse é o código que apaga registros do meu banco de dados:

public static void delete(Object o) {
        try {
            EntityManager em = GenericDao.getEmf().createEntityManager();
            em.getTransaction().begin();
            em.remove(em.merge(o));
            em.getTransaction().commit();
            em.close();
        } catch (Exception ex) {
            Alert a = new Alert(Alert.AlertType.ERROR);
            a.setContentText(ex.getMessage());
            a.showAndWait();
        }
    }

Está assim a modelagem:

https://www.filepicker.io/api/file/0dIKBPGUSgKuP78qG5Yy

E na entidade que o EclipseLink criou está assim o cascade:

Tabela pai -->

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoIdCredito")
    private List<Fiscal> fiscalList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoIdDebito")
    private List<Fiscal> fiscalList1;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoId")
    private List<Carteira> carteiraList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoIdCredito")
    private List<Padrao> padraoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoIdDebito")
    private List<Padrao> padraoList1;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "planoId")
    private List<Financeiro> financeiroList;
  • Como está seu cascade?

    tmvolpato   14 de dez de 2015
  • Editei a pergunta e anexei o ON DELETE e o ON UPDATE

    Diego Davel   14 de dez de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags banco-de-dados javafx ou faça a sua própria pergunta.