public void create(TipoFreio tipoFreio) {
        if (tipoFreio.getConfiguracaoFreioCollection() == null) {
            tipoFreio.setConfiguracaoFreioCollection(new ArrayList<ConfiguracaoFreio>());
        }
        if (tipoFreio.getConfiguracaoFreioCollection1() == null) {
            tipoFreio.setConfiguracaoFreioCollection1(new ArrayList<ConfiguracaoFreio>());
        }
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            Collection<ConfiguracaoFreio> attachedConfiguracaoFreioCollection = new ArrayList<ConfiguracaoFreio>();
            for (ConfiguracaoFreio configuracaoFreioCollectionConfiguracaoFreioToAttach : tipoFreio.getConfiguracaoFreioCollection()) {
                configuracaoFreioCollectionConfiguracaoFreioToAttach = em.getReference(configuracaoFreioCollectionConfiguracaoFreioToAttach.getClass(), configuracaoFreioCollectionConfiguracaoFreioToAttach.getCodigoConfiguracaoFreio());
                attachedConfiguracaoFreioCollection.add(configuracaoFreioCollectionConfiguracaoFreioToAttach);
            }
            tipoFreio.setConfiguracaoFreioCollection(attachedConfiguracaoFreioCollection);
            Collection<ConfiguracaoFreio> attachedConfiguracaoFreioCollection1 = new ArrayList<ConfiguracaoFreio>();
            for (ConfiguracaoFreio configuracaoFreioCollection1ConfiguracaoFreioToAttach : tipoFreio.getConfiguracaoFreioCollection1()) {
                configuracaoFreioCollection1ConfiguracaoFreioToAttach = em.getReference(configuracaoFreioCollection1ConfiguracaoFreioToAttach.getClass(), configuracaoFreioCollection1ConfiguracaoFreioToAttach.getCodigoConfiguracaoFreio());
                attachedConfiguracaoFreioCollection1.add(configuracaoFreioCollection1ConfiguracaoFreioToAttach);
            }
            tipoFreio.setConfiguracaoFreioCollection1(attachedConfiguracaoFreioCollection1);
            em.persist(tipoFreio);
            for (ConfiguracaoFreio configuracaoFreioCollectionConfiguracaoFreio : tipoFreio.getConfiguracaoFreioCollection()) {
                TipoFreio oldCodigoTipoFreioTraseiroOfConfiguracaoFreioCollectionConfiguracaoFreio = configuracaoFreioCollectionConfiguracaoFreio.getCodigoTipoFreioTraseiro();
                configuracaoFreioCollectionConfiguracaoFreio.setCodigoTipoFreioTraseiro(tipoFreio);
                configuracaoFreioCollectionConfiguracaoFreio = em.merge(configuracaoFreioCollectionConfiguracaoFreio);
                if (oldCodigoTipoFreioTraseiroOfConfiguracaoFreioCollectionConfiguracaoFreio != null) {
                    oldCodigoTipoFreioTraseiroOfConfiguracaoFreioCollectionConfiguracaoFreio.getConfiguracaoFreioCollection().remove(configuracaoFreioCollectionConfiguracaoFreio);
                    oldCodigoTipoFreioTraseiroOfConfiguracaoFreioCollectionConfiguracaoFreio = em.merge(oldCodigoTipoFreioTraseiroOfConfiguracaoFreioCollectionConfiguracaoFreio);
                }
            }
            for (ConfiguracaoFreio configuracaoFreioCollection1ConfiguracaoFreio : tipoFreio.getConfiguracaoFreioCollection1()) {
                TipoFreio oldCodigoTipoFreioDianteiroOfConfiguracaoFreioCollection1ConfiguracaoFreio = configuracaoFreioCollection1ConfiguracaoFreio.getCodigoTipoFreioDianteiro();
                configuracaoFreioCollection1ConfiguracaoFreio.setCodigoTipoFreioDianteiro(tipoFreio);
                configuracaoFreioCollection1ConfiguracaoFreio = em.merge(configuracaoFreioCollection1ConfiguracaoFreio);
                if (oldCodigoTipoFreioDianteiroOfConfiguracaoFreioCollection1ConfiguracaoFreio != null) {
                    oldCodigoTipoFreioDianteiroOfConfiguracaoFreioCollection1ConfiguracaoFreio.getConfiguracaoFreioCollection1().remove(configuracaoFreioCollection1ConfiguracaoFreio);
                    oldCodigoTipoFreioDianteiroOfConfiguracaoFreioCollection1ConfiguracaoFreio = em.merge(oldCodigoTipoFreioDianteiroOfConfiguracaoFreioCollection1ConfiguracaoFreio);
                }
            }
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }