JSF - componente selectOneMenu - recupera o valor da lista mas ocorre erro ao salvar objeto

1 resposta
C

estou utilizando um selectOneMenu com um list, o mesmo retorna o valor da lista corretamente, porem no momento que vou salvar o objeto emiti a seguinte mensagem:

Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: Não pode inferir um tipo SQL a ser usado para uma instância de [Ljavax.faces.model.SelectItem;. Use setObject() com um valor de Types explícito para especificar o tipo a ser usado.Error Code: 0 Call:INSERT INTO empresa (id, cidade, uf, nome_fantasia, cep, endereco, fone, razao_social, fax, bairro, email, cnpj, SIGLAESTADOS) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) bind => [10, ADSF, RJ, ZXC, ASDF, ZCX, ADSF, AS, ASDF, ADFA, ASDF, zXC, [Ljavax.faces.model.SelectItem;@add57] Query:InsertObjectQuery(com.jas.empresa.Empresa[id=10])
Exception Description: No transaction is currently active

fiz um debug para visualizar e ele estra preenchido corretamente.

o meu código esta no seguinte formato

private List listaEstado;

public List getListaEstado() {

if(listaEstado == null){

listaEstado = new LinkedList();

listaEstado.add(new SelectItem(GO,GO));

listaEstado.add(new SelectItem(MG,MG));

listaEstado.add(new SelectItem(SP,SP));

listaEstado.add(new SelectItem(RJ,RJ));

}

return listaEstado;

}
public void setListaEstado(List listaEstado) {
    this.listaEstado = listaEstado;
}

implentado na pagina:

<h:selectOneMenu value="#{empresa.empresa.uf}">
<f:selectItems value="#{empresa.empresa.listaEstado}"/>
</h:selectOneMenu>

ele exibe a lista corretamente porem acontece o erro q mencionei acima.

Estou usando JPA.

Obrigado.

1 Resposta

C

Não funcionou com a list, então fiz da seguinte forma.

private static SelectItem[] siglaEstados = {

new SelectItem(GO,GO),

new SelectItem(MG,MG),

new SelectItem(SP,SP),

new SelectItem(RJ,RJ)

};
public SelectItem[] getSiglaEstados(){
    return siglaEstados;
}

depois chamei o selectOneMenu da pagina e funcinou e gravou novamente.

Se alguem souber como fazer com a lista fico grato pela ajuda

Valeu

Criado 7 de agosto de 2007
Ultima resposta 9 de ago. de 2007
Respostas 1
Participantes 1