public void create(Qualificador qualificador) {
        if (qualificador.getQualificadorAplicacaoCollection() == null) {
            qualificador.setQualificadorAplicacaoCollection(new ArrayList<QualificadorAplicacao>());
        }
        if (qualificador.getQualificadorProdutoCollection() == null) {
            qualificador.setQualificadorProdutoCollection(new ArrayList<QualificadorProduto>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Collection<QualificadorAplicacao> attachedQualificadorAplicacaoCollection = new ArrayList<QualificadorAplicacao>();
            for (QualificadorAplicacao qualificadorAplicacaoCollectionQualificadorAplicacaoToAttach : qualificador.getQualificadorAplicacaoCollection()) {
                qualificadorAplicacaoCollectionQualificadorAplicacaoToAttach = em.getReference(qualificadorAplicacaoCollectionQualificadorAplicacaoToAttach.getClass(), qualificadorAplicacaoCollectionQualificadorAplicacaoToAttach.getCodigoQualificadorAplicacao());
                attachedQualificadorAplicacaoCollection.add(qualificadorAplicacaoCollectionQualificadorAplicacaoToAttach);
            }
            qualificador.setQualificadorAplicacaoCollection(attachedQualificadorAplicacaoCollection);
            Collection<QualificadorProduto> attachedQualificadorProdutoCollection = new ArrayList<QualificadorProduto>();
            for (QualificadorProduto qualificadorProdutoCollectionQualificadorProdutoToAttach : qualificador.getQualificadorProdutoCollection()) {
                qualificadorProdutoCollectionQualificadorProdutoToAttach = em.getReference(qualificadorProdutoCollectionQualificadorProdutoToAttach.getClass(), qualificadorProdutoCollectionQualificadorProdutoToAttach.getCodigoQualificadorProduto());
                attachedQualificadorProdutoCollection.add(qualificadorProdutoCollectionQualificadorProdutoToAttach);
            }
            qualificador.setQualificadorProdutoCollection(attachedQualificadorProdutoCollection);
            em.persist(qualificador);
            for (QualificadorAplicacao qualificadorAplicacaoCollectionQualificadorAplicacao : qualificador.getQualificadorAplicacaoCollection()) {
                Qualificador oldCodigoQualificadorOfQualificadorAplicacaoCollectionQualificadorAplicacao = qualificadorAplicacaoCollectionQualificadorAplicacao.getCodigoQualificador();
                qualificadorAplicacaoCollectionQualificadorAplicacao.setCodigoQualificador(qualificador);
                qualificadorAplicacaoCollectionQualificadorAplicacao = em.merge(qualificadorAplicacaoCollectionQualificadorAplicacao);
                if (oldCodigoQualificadorOfQualificadorAplicacaoCollectionQualificadorAplicacao != null) {
                    oldCodigoQualificadorOfQualificadorAplicacaoCollectionQualificadorAplicacao.getQualificadorAplicacaoCollection().remove(qualificadorAplicacaoCollectionQualificadorAplicacao);
                    oldCodigoQualificadorOfQualificadorAplicacaoCollectionQualificadorAplicacao = em.merge(oldCodigoQualificadorOfQualificadorAplicacaoCollectionQualificadorAplicacao);
                }
            }
            for (QualificadorProduto qualificadorProdutoCollectionQualificadorProduto : qualificador.getQualificadorProdutoCollection()) {
                Qualificador oldCodigoQualificadorOfQualificadorProdutoCollectionQualificadorProduto = qualificadorProdutoCollectionQualificadorProduto.getCodigoQualificador();
                qualificadorProdutoCollectionQualificadorProduto.setCodigoQualificador(qualificador);
                qualificadorProdutoCollectionQualificadorProduto = em.merge(qualificadorProdutoCollectionQualificadorProduto);
                if (oldCodigoQualificadorOfQualificadorProdutoCollectionQualificadorProduto != null) {
                    oldCodigoQualificadorOfQualificadorProdutoCollectionQualificadorProduto.getQualificadorProdutoCollection().remove(qualificadorProdutoCollectionQualificadorProduto);
                    oldCodigoQualificadorOfQualificadorProdutoCollectionQualificadorProduto = em.merge(oldCodigoQualificadorOfQualificadorProdutoCollectionQualificadorProduto);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }