public void destroy(Integer id) throws NonexistentEntityException {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Motor motor;
            try {
                motor = em.getReference(Motor.class, id);
                motor.getCodigoMotor();
            } catch (EntityNotFoundException enfe) {
                throw new NonexistentEntityException("The motor with id " + id + " no longer exists.", enfe);
            }
            TipoMotor codigoTipoMotor = motor.getCodigoTipoMotor();
            if (codigoTipoMotor != null) {
                codigoTipoMotor.getMotorCollection().remove(motor);
                codigoTipoMotor = em.merge(codigoTipoMotor);
            }
            TipoCombustivel codigoTipoCombustivel = motor.getCodigoTipoCombustivel();
            if (codigoTipoCombustivel != null) {
                codigoTipoCombustivel.getMotorCollection().remove(motor);
                codigoTipoCombustivel = em.merge(codigoTipoCombustivel);
            }
            TipoCabecote codigoTipoCabecote = motor.getCodigoTipoCabecote();
            if (codigoTipoCabecote != null) {
                codigoTipoCabecote.getMotorCollection().remove(motor);
                codigoTipoCabecote = em.merge(codigoTipoCabecote);
            }
            TipoAspiracao codigoTipoAspiracao = motor.getCodigoTipoAspiracao();
            if (codigoTipoAspiracao != null) {
                codigoTipoAspiracao.getMotorCollection().remove(motor);
                codigoTipoAspiracao = em.merge(codigoTipoAspiracao);
            }
            Injecao codigoInjecao = motor.getCodigoInjecao();
            if (codigoInjecao != null) {
                codigoInjecao.getMotorCollection().remove(motor);
                codigoInjecao = em.merge(codigoInjecao);
            }
            Collection<Veiculo> veiculoCollection = motor.getVeiculoCollection();
            for (Veiculo veiculoCollectionVeiculo : veiculoCollection) {
                veiculoCollectionVeiculo.setCodigoMotor(null);
                veiculoCollectionVeiculo = em.merge(veiculoCollectionVeiculo);
            }
            em.remove(motor);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }