DataGrid exibindo NaN

Estou retornando um Array de Objetos do java para preencher um DataGrid, porem os campos numéricos como id vem como NaN(not a number)… utilizo blazeDS e flex3.2…
Já fiz varios projetos e nunca tive esse problema … se alguem puder ajudar agradeço desde já.

NaN para um número é a mesma coisa que null para um objeto.
Verifique se a informação está chegando corretamente, confira se o nome nas entidades está o mesmo.

No java retorna perfeitamente os valores nos ids , porém o array chega com os id´s NaN no flex… a sintaxe esta correta…, cheguei a trocar os arquivos do BlazeDs mas continuou…

[code]package beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.*;

@Entity
@Table (name = “CATEGORIA”)
public class Categoria implements Serializable {

@Id
@SequenceGenerator (name = "Categoria_seq", sequenceName = "categoria_seq", allocationSize=1,initialValue=1)
@GeneratedValue (strategy=GenerationType.SEQUENCE , generator = "Categoria_seq")
@Column( name = "ID_CATEGORIA")
private  int IdCategoria;

@Column (name = "DESCRICAO" ,  length = 30)
private String descricao;

@OneToMany (mappedBy ="categoria", fetch=FetchType.EAGER)
private List<Sessao> sessao = new ArrayList<Sessao>();[/code]

[code]package Entity
{
import mx.collections.ArrayCollection;

[RemoteClass(alias = “beans.Categoria” )]
[Bindable]
public class Categoria{

	public var IdCategoria : Number;
	public var descricao : String ;
	public var sessao : ArrayCollection;
}

}[/code]

A descrição e a lista de sessões chegam corretamente?

sim, a descrição chega, e a lista vem null pq realmente nao existe.

E se colocar o IdCategoria no Flex como int?
E se colocar o IdCategoria no Java como Integer? E se colocar o IdCategoria no Java como Long? E manter no Flex como Number.

Se a descrição está chegando não é problema na comunicação.

Se deixar int no flex aparece 0 no lugar do NaN, no java testei de todos os jeitos já.

Não sei se isso interfere, mas a unica coisa que esta diferente de outros projetos que tenho é que atualizei a versao do plugin do flex de 3.1 para 3.2 para utilizar recursos de upload do flash10…

O código eu tenho certeza que esta com os nomes em todos os locais iguais…

<mx:RemoteObject id="CategoriaServ" destination="CategoriaServ"> <mx:method name="gravar" result="resultGravar(event)"/> <mx:method name="listarTodas" result="resultlistarTodas(event)"/> </mx:RemoteObject>

[code][Bindable]
public var listaCategorias : ArrayCollection;

// o result
public function resultlistarTodas(e:ResultEvent):void {
listaCategorias = e.result as ArrayCollection;

}[/code]

e o data grid.

<mx:DataGrid x="10" y="128" width="500" dataProvider="{listaCategorias}"> <mx:columns> <mx:DataGridColumn headerText="Codigo" dataField="IdCategoria"/> <mx:DataGridColumn headerText="Descricao" dataField="descricao"/> </mx:columns> </mx:DataGrid>

Ricardo, como foram definidas as classes POJO, quais são os nomes dos atributos…posta aí pra gente a classe.

Consegui resolver, não sei nem como explicar, mas quando coloquei o nome do atributo IdCategoria com o I minusculo em todos os lugares, funcionou, eu volto para maiusculo vem NaN, mesmo estando em todos os lugares iguais… eu postei esta classe no post anterior.

Vlw.

Ah, verdade, você criou a classe na camada do flex, não tinha visto, desculpe.

Cara, que loco isso de mudar pra minúsculo e funcionar…cada coisa!!!

Vou fazer um teste colocando a inicial da variavel em maiuscula.
Será que não era a falta de um setter? O BlazeDS obriga a entidade ter um setter para cada atributo para conseguir setar o valor senão ele vem nulo…

Cara, utilize classes Wrapper e evite alguns problemas, se o “espelhamento” está acontecendo nos outros campos e só neste está o problema.

Tente alterar de int para Integer e verifica se o get e o set está ok.

Verifique se a sua classe “espelho” no Flex está sendo utilizada em algum local do projeto, para ser adicionada no swf.

Check se o nome do campo está idêntico.

Depois poste aí se funcionou.

[]'s