Componentes richfaces que não recuperam valores

Olá.

Estava usando apenas componentes do core jsf e ao carregar um objeto para alteração, esse era carregado com os valores salvos no banco nos respectivos campos. Até aí, tudo ok.

Decidi trocar alguns componentes por outros do richfaces, ao clicar em alterar, os valores carregados nos componentes rich aparecem iguais aos valores do banco, mas quando clico em salvar, é como se estivessem nulos.

Isso não acontece com o <h:selectOneMenu>, por exemplo.

Trecho do formulário em que está o link para alterar:

        <rich:column>
	<f:facet name="header">
	<h:outputText value="Ação" />
	</f:facet>
	<a4j:commandLink value="Alterar" execute="#{jogadorMB.jogador.posicao}"  render=":cadastro:panel_jogador,#{jogadorMB.jogador.posicao}">
	<f:setPropertyActionListener  target="#{jogadorMB.jogador}" value="#{jogador}"  />
	</a4j:commandLink>
	</rich:column>

Trecho do mesmo formulario em que se encontra o rich:select e o <h:selectOneMenu>. Como disse, esse último recupera os valores após clicar em alterar.


    <h:outputLabel value="Seleção" for="selecao" />
      <h:selectOneMenu id="selecao" value="#{jogadorMB.jogador.selecao}" 
        converter="simpleIndexConverter">
        <f:selectItems value="#{selecaoMB.selecoes}" var="selecao"
        itemLabel="#{selecao.nome}" itemValue="#{selecao}" />
     </h:selectOneMenu>
                      
      <h:outputLabel value="Posicao" for="posicao" />
               <rich:select  id="posicao" value="#{jogadorMB.jogador.posicao}" 
                converter="simpleIndexConverter" enableManualInput="true"
                defaultLabel="#{not empty jogadorMB.jogador.posicao ? jogadorMB.jogador.posicao : 'selecione uma posicao'}">
                <f:selectItems value="#{jogadorMB.posicoes}" var="posicao"
		itemLabel="#{posicao.nome}"  itemValue="#{posicao}"   />
		<a4j:ajax  execute="posicao" 
		onbegin="#{rich:component('posicao')}.setValue(#{rich:component('posicao')}.getValue());"  /> 
		</rich:select>

trecho do bean responsável pela alteração:

  public void cadastrar(AjaxBehaviorEvent event) {
		if (this.jogador.getId() == null) {
			this.jogadorDAO.salvar(this.jogador);
			
		} else {

			this.jogadorDAO.atualizar(jogador);
			
		}
		this.jogador = new Jogador();

	}

Stack trace:

Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
	at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:656)
	... 42 more
Caused by: java.sql.BatchUpdateException: Column 'posicao' cannot be null
	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2024)
	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1449)
	at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
	... 50 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'posicao' cannot be null
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	at com.mysql.jdbc.Util.getInstance(Util.java:386)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1039)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1976)
	... 54 more