Dialog enviando String vazia do imputText JSF + PrimeFaces

Está acontecendo o seguinte, tenho um dataTable com dados e botões EDITAR, REMOVER e CADASTRAR.
Quando clico no botão cadastrar um Dialog é aberto com dois InputText(Complexidade e Frequencia) e um botão que chama o metodo para fazer o cadastro.
No botão editar acontece o mesmo, mas em vez de cadastrar ele atualiza os dados.
O problema, é que após iniciar o servidor e tentar cadastrar preenchendo os campos, a Frequencia(Integer) vai como 0 e Complexidade(String) vai vazia.
Agora se eu tentar Editar os campos, da tudo certo, os valores são alterados numa boa.
O mais estranho é que se Editar e depois tentar cadastrar, o cadastro acontece, mas com os valores que foram digitados no Dialog Editar.

JSF


<h:form prependId="false" id="formComplexidades">
					<h:panelGrid columns="1" styleClass="tabelaConfigTabelas">
						<h:panelGrid columns="3">
					
									<h:outputText value="Complexidades" />
									
						</h:panelGrid>
						<p:dataTable id="tabelaComplex" value="#{complexidadesBean.complexidades}" var="complexVar"
							paginator="true" rows="5" selectionMode="single"
							paginatorTemplate=" {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">
							
								
							
							<f:facet name="header">
									<p:commandButton value="Cadastrar" update="painelCadastrarComplex" oncomplete="janelaCadastrarComplex.show()"/>
							</f:facet>
								
							<p:column>
								<f:facet name="header">
									<h:outputText value="Complexidade" />
								</f:facet>
								<div  align="center">
									<h:outputText value="#{complexVar.complexidade}" />
								</div>
							</p:column>
							
							<p:column>
								<f:facet name="header">
									<h:outputText value="Frequencia" />
								</f:facet>
								<div  align="center">
									<h:outputText value="#{complexVar.frequencia}" />
								</div>
							</p:column>
	
							<p:column>
								<f:facet name="header">
									<h:outputText value="Editar" />
								</f:facet>
									<p:commandLink value="Editar" 
										update="painelEditarComplex" oncomplete="janelaEditarComplex.show()">
										 <f:setPropertyActionListener value="#{complexVar}" target="#{complexidadesBean.complexidadeSelecionada}" />
									</p:commandLink>
							</p:column>	
								
							<p:column>
								<f:facet name="header">
									<h:outputText value="Remover" />
								</f:facet>
								
									<p:commandLink value="Remover" oncomplete="removeComplexConfirm.show()" >
										 <f:setPropertyActionListener value="#{complexVar}" target="#{complexidadesBean.complexidadeSelecionada}" />
									</p:commandLink>
									
							</p:column>	
						</p:dataTable>
					
					
					
						<p:dialog  header="Cadastrar" widgetVar="janelaCadastrarComplex"
							resizable="false" width="230" showEffect="explode"
							hideEffect="explode">
							<p:outputPanel id="painelCadastrarComplex">
								<h:panelGrid  columns="1" cellpadding="4"> 
								<h:outputLabel value="Complexidade: " /><h:inputText value="#{complexidadesBean.complexidadeSelecionada.complexidade}" />
								<h:outputLabel value="Frequência: " /><h:inputText value="#{complexidadesBean.complexidadeSelecionada.frequencia}" />
								<p:commandButton update=":formComplexidades:tabelaComplex" value="Cadastrar"
										action="#{complexidadesBean.cadastraComplexidade}" />
								</h:panelGrid>
							</p:outputPanel>
						</p:dialog>


						<p:dialog  header="Editar" widgetVar="janelaEditarComplex"
							resizable="false" width="250" showEffect="explode"
							hideEffect="explode" position="dynamic" >
							<p:outputPanel id="painelEditarComplex">
								<h:panelGrid  columns="2" cellpadding="4"> 
								<h:inputText value="#{complexidadesBean.complexidadeSelecionada.complexidade}" />
								<h:inputText value="#{complexidadesBean.complexidadeSelecionada.frequencia}" />
								<p:commandButton value="Atualizar" action="#{complexidadesBean.atualizarComplexidade}" 
												 update=":formComplexidades:tabelaComplex"/>
								</h:panelGrid>
							</p:outputPanel>
						</p:dialog>

						<p:confirmDialog message="Deseja remover a Complexidade selecionada?"
							showEffect="bounce" hideEffect="explode"
							header="Remover area" severity="alert"
							widgetVar="removeComplexConfirm">
				
							<p:commandButton value="Sim" update=":formComplexidades:tabelaComplex"
								oncomplete="removeComplexConfirm.hide()" 
								action="#{complexidadesBean.removeComplexidade}" />
							<p:commandButton value="Não" onclick="removeAreaConfirm.hide()"
								type="button" />
				
						</p:confirmDialog>
			</h:panelGrid>
			</h:form>	

BEAN


public class ComplexidadesBean  {
	
	
	private Complexidades complexidadeSelecionada;
	private List<Complexidades> complexidades = new ArrayList<Complexidades>();
	
	
	public ComplexidadesBean(){
		this.complexidadeSelecionada = new Complexidades();
		//System.out.println(" criar " +complexidadeSelecionada.getId() + " " + complexidadeSelecionada.getComplexidade() + " " + complexidadeSelecionada.getFrequencia());
	}
	
	public EntityManager entityManager(){
		ELContext elContext = FacesContext.getCurrentInstance().getELContext();
		return (EntityManager) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "entityManager");
	
	}
		
	
	public String cadastraComplexidade(){
		//System.out.println(" Cadastra ENTRA " +complexidadeSelecionada.getId() + " " + complexidadeSelecionada.getComplexidade() + " " + complexidadeSelecionada.getFrequencia());
		ComplexRepositorio repositorio = new ComplexRepositorio(entityManager());
		repositorio.adicionaComplexidade(this.complexidadeSelecionada);
		this.complexidadeSelecionada = new Complexidades();
		//System.out.println(" Cadastra SAI " +complexidadeSelecionada.getId() + " " + complexidadeSelecionada.getComplexidade() + " " + complexidadeSelecionada.getFrequencia());
		return null;
	}
	
	public List<Complexidades> getComplexidades(){
		ComplexRepositorio repositorio = new ComplexRepositorio(entityManager());
	    return repositorio.getComplexidades();
	}
	
	
	public String removeComplexidade(){
		ComplexRepositorio repositorio = new ComplexRepositorio(entityManager());
		repositorio.removeComplexidades(this.complexidadeSelecionada);
		this.complexidadeSelecionada = new Complexidades();
		return null;
	}
	
	public String atualizarComplexidade(){
		//System.out.println(" Atualiza ENTRA " +complexidadeSelecionada.getId() + " " + complexidadeSelecionada.getComplexidade() + " " + complexidadeSelecionada.getFrequencia());
		ComplexRepositorio repositorio = new ComplexRepositorio(entityManager());
		repositorio.atualizaComplexidade(this.complexidadeSelecionada);
		this.complexidadeSelecionada = new Complexidades();
		//System.out.println(" Atualiza SAI " +complexidadeSelecionada.getId() + " " + complexidadeSelecionada.getComplexidade() + " " + complexidadeSelecionada.getFrequencia());
		return null;
	}


	public void setComplexidade(List<Complexidades> complexidades) {
		this.complexidades = complexidades;
	}

	public Complexidades getComplexidadeSelecionada() {
		return complexidadeSelecionada;
	}

	public void setComplexidadeSelecionada(Complexidades complexidade) {
		this.complexidadeSelecionada = complexidade;
	}


	

}

ENTIDADE Complexidades


@Entity
@Table(name = "TB_COMPLEXIDADES")
public class Complexidades {
	
	@Id 
	@GeneratedValue
	private Long id;
	
	private String complexidade;
	private Integer frequencia;
	@ManyToOne
	private Unidades unidade;
	
	
	public Unidades getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidades unidade) {
		this.unidade = unidade;
	}

	public Long getId() {
		return id;
	}

	public String getComplexidade() {
		return complexidade;
	}
	public void setComplexidade(String complexidade) {
		this.complexidade = complexidade;
	}
	public Integer getFrequencia() {
		return frequencia;
	}
	public void setFrequencia(Integer frequencia) {
		this.frequencia = frequencia;
	}

	
	

}

No Bean adicionei println que estão comentados, quando rodo com eles este é o resultado

----Após iniciar o servidor----------

Cadastra ENTRA- id = null complexidade = frequencia = 0
Cadastra SAI- id = null complexidade = null frequencia = null

-----Botão Atualizar-------------------

Atualiza ENTRA- id = 50 complexidade = AA frequencia = 10
Atualiza SAI- id = null complexidade = null frequencia = null

----Botão cadastrar depois de Editar, mesmo digitando Complexidade “BB” e Frequencia 20-----

Cadastra ENTRA- id = 50 complexidade = AA frequencia = 10
Cadastra SAI- id = null complexidade = null frequencia = null

Fazendo alguns testes aqui, percebi que quando tiro os dois inputText do Dialog EDITAR, o cadastro funciona.


               <h:inputText value="#{complexidadesBean.complexidadeSelecionada.complexidade}" />
		               <h:inputText value="#{complexidadesBean.complexidadeSelecionada.frequencia}" />

Gostaria de entender o motivo :?