SelectOneMenu com BD não salva

Ae galera! Boa noite! :shock:
Estou com um pequeno probleminha aqui.
Eu tenho uma classe empresa e equipe, sendo que a equipe faz parte da empresa. Na hora do cadastro da equipe, devemos dizer qual empresa ela faz parte.
Para selecionar a empresa, eu fiz um SelectOneMenu, mostra as empresas no SelectItems, fiz converter, tudo bonitinho, só que não persiste a equipe, quando eu clico no botão, ele não executa nenhuma ação, agora só tirar o SelectOneMenu que o form já envia solicitação. Agora se eu tirar o SelectOneMenu do JSF, ele faz a persistência. Segue abaixo, a classe, converter e JSF. Lembrando que estou utilizando Hibernate para persistência e primefaces. Não gera nenhum log.

Classe Empresa

public class Empresa{ @Id @GeneratedValue private long id; private String nome; //get e set omitidos
Classe Equipe

[code]
@Entity
public class Equipe{
@Id @GeneratedValue
private long id;
private Empresa empresa;
private String nome;
private int minArquivo;
private int diasLimites;
private boolean ativo = true;

//get e set omitidos

}[/code]

Converter

[code]@FacesConverter(value=“EmpresaConverter”, forClass=Empresa.class)
public class EmpresaConverter implements Converter {
private EmpresaController emp = new EmpresaController();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return emp.getEmpresasPorId(Integer.valueOf(value));
}

@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
	return String.valueOf(((Empresa)value).getId());
}

}[/code]

JSF

[code]<p:fieldset legend=“Adicionar Equipe”>
<h:form>
<h:panelGrid columns=“2”>
<h:outputText value=“Nome:” />
<p:inputText value="#{equipeController.equipe.nome}" />
<h:outputText value=“Empresa: " />
<h:selectOneMenu id=“Empresa” value=”#{equipeController.equipe.empresa}">
<f:selectItems value="#{empresaController.empresas}" var=“emp” itemLabel="#{emp.nome}" itemValue="#{emp}" />
<f:converter converterId=“EmpresaConverter” />
</h:selectOneMenu>
<h:outputText value=“Minimo de Arquivos: " />
<p:spinner min=“0” value=”#{equipeController.equipe.minArquivo}"/>
<h:outputText value=“Qtd dias limite: " />
<p:spinner min=“0” value=”#{equipeController.equipe.diasLimites}" />

				<p:commandButton actionListener="#{equipeController.salvar}" value="Cadastrar"/>
				<p:commandButton type="reset" value="Limpar"/>
			</h:panelGrid>
		</h:form>
	</p:fieldset>[/code]

Amigo bom dia , eu vi que tu fes um converter , sinceramente nunca fiz deste jeito , do modo que eu aprendi e faço
não sei se pe certo ou errado ,para falar a verdade nem sabia que dava para criar uma classe para pegar o valor (com esse tal de converter xD) selecionado

mas tu pode fazer da seguinte maneira , acredito que não seja POG , la no seu Bean voce criar uma variavel idEmpresa. e gerar get e setters e passar o valor do que voce selecionar para essa variavel .

<h:selectOneMenu id="Empresa" value="#{equipeController.equipe.empresa}"> <f:selectItems value="#{empresaController.empresas}" var="emp" itemLabel="#{emp.nome}" itemValue="#{equipeController.idEmpresa}" /> <f:converter converterId="EmpresaConverter" /> </h:selectOneMenu>

@mausexdd
Na verdade, acho que isso pra mim é desnecessário, porque se for ver o código HTML que está sendo gerado do SelectOneMenu, é extremamente funcional.

<select id="Empresa" name="Empresa" size="1"> <option value="1">teste1</option> <option value="3">Teste 5</option> </select>

Mas mesmo assim, quando clico no botão não gera nada, nem erro, nem nada no log do GlassFish. É como se o botão estivesse sem ação.

Troquei o botão do primeface < p:commandButton / > para < h:commandButton / >, agora está dando erro de validação!

j_idt27:Empresa: Erro de validação: o valor não é válidoj_idt27:Empresa: Erro de validação: o valor não é válido

Mas o código-fonte gerado do xhtml da parte do select é:

[code]

teste1 Teste 5 [/code]

Sendo que é o converter que faz essa conversão do value, quando executa o getAsObject, ele faz uma consulta no banco, para pegar o objeto correto.

Consegui fazer funcionar, era só implementar o hashcode e o equals no model empresa.
Ele esta gravando o objeto serializado no campo, só que deveria só gravar o id, já que tem relacionamento de muitas equipes para uma empresa.
Só persiste a equipe, quando eu tiro o relacionamento, agora quando eu coloco o relacionamento ele não persiste.
O que posso fazer?

Amigo conseguiu resolver, se sim post a solução por favor…estou precisando…abraçuuu

Caro eduardimaa,

Eu não lembro da solução, assim que eu chegar em casa, eu vejo que eu fiz, e te dou um toque.

Abraço,

Jonas