Problema com relacionamento ManyToMany

Olá Pessoal,

Estou com um problema em um relacionamento ManyToMany,
Tenho uma Classe Disciplina e outra Professor, e preciso relacionar os Ids dessas classes em uma terceira tabela no banco que seria então disciplina_professor,
e o problema que estou tendo é que não salva de jeito nenhum e não me retorna erro nenhum, já não sei mais oque pode estar de errado, se alguém puder fazer
a gentileza de me ajudar eu agradeço muito, pois esse é o projeto do meu TCC, e não tenho ainda tanto domínio da linguagem,
segue os codigos,

O relacionamento na Classe Disciplina

@ManyToMany(cascade = CascadeType.ALL)
	@JoinTable(name = "disciplina_cadastroprofessor",
         joinColumns = @JoinColumn(name = "coddisciplina"),
         inverseJoinColumns = @JoinColumn(name = "codprofessor"))
	private Set<cadastroProfessor> professor;

Classe Professor

@ManyToMany(mappedBy = "professor", fetch=FetchType.EAGER)
	private Set<Disciplina> disciplina ;

Oque estou tentando fazer, ao cadastrar disciplina estou usando o componente p:selectOneMenu para listar os Professores já cadastrados, segue o código

<h:outputText value="Professor: " />
    <p:selectOneMenu value="#{disciplinaBean.disciplina.professor}"
           id="professor" converter="converter">
          <f:selectItem itemLabel="Selecione uma opção" itemValue="" />
          <f:selectItems value="#{professorBean.lista}" var="p"
              itemLabel="#{p.nomeProfessor}" itemValue="#{p}" />
    </p:selectOneMenu>	

Ele lista certinho os professores, criei o converter da seguinte forma,

@FacesConverter("converter")
   
public class CategoriaConverter implements Converter{  
      
	public Object getAsObject(FacesContext ctx, UIComponent component, String value) {  
        if (value != null) {  
            return this.getAttributesFrom(component).get(value);  
        }  
        return null;  
    }  
  
    public String getAsString(FacesContext ctx, UIComponent component, Object value) {  
  
        if (value != null  
                && !"".equals(value)) {  
  
            baseCon entity = (baseCon) value;  
  
            // adiciona item como atributo do componente  
            this.addAttribute(component, entity);  
  
            Long professor = entity.getId();  
            if (professor != null) {  
                return String.valueOf(professor);  
            }  
        }  
  
        return (String) value;  
    }  
  
    protected void addAttribute(UIComponent component, baseCon o) {  
        String key = o.getId().toString(); // codigo da empresa como chave neste caso  
        this.getAttributesFrom(component).put(key, o);  
    }  
  
    protected Map<String, Object> getAttributesFrom(UIComponent component) {  
        return component.getAttributes();  
    }  
  
}  

Acontece que quando preencho os dados do formulário e clico em salvar não acontece nada, nem mesmo tenho um erro como retorno,
não sei oque posso fazer, é possível persistir esses dados desta maneira que estou tentando? será que é preciso mudar meu método salvar de Disciplina?

ele está desta forma no controller,

public String salvarDisci() {

		DisciplinaRN disciplinaRN = new DisciplinaRN();
		ProfessorRN professorRN = new ProfessorRN();
		disciplinaRN.salvarDisci(this.disciplina);
		return this.destinoSalvarDisci;

	}

no DisciplinaRN

public void salvarDisci(Disciplina disciplina) {
		Integer codDisciplina = disciplina.getCodDisciplina();
		if (codDisciplina == null || codDisciplina == 0) {
			this.disciplinaDAO.salvarDisci(disciplina);
		} else {
			this.disciplinaDAO.atualizarDisci(disciplina);
		}
	}

Agradeço a atenção, se puderem me dar uma luz agradeço!

Isso aqui vai de ajudar companheiro…

http://docs.jboss.org/hibernate/core/3.6/reference/pt-BR/html/