Rafa, Muito obrigado pelo seu questionamento!!! Eu disse que estava vindo certo, mas coloquei EAGER no lugar de LAZY e para minha surpresa funcionou perfeitamente agora. Não conhecia muito bem a diferença entre eles, agora dei uma pesquisada e vi que era isso mesmo que faltava. Muito obrigado mesmo. Valeu todo mundo pela ajuda pessoal.
Abraços Em 8 de abril de 2010 17:49, Paulo Kinzkowski Junior <[email protected]>escreveu: > Tenho sim, eu uso o flamingo para fazer a integração do flex com o Jboss > Seam, e o flamingo aceita lazy. > > Outra coisa que esqueci de mencionar é que se eu instanciar os objetos > Equipment e Icon e setalos depois de ter feito a pesquisa eu consigo > manusiar no flex perfeitamente. > > Ex.: > > @SuppressWarnings("unchecked") > public List<EquipmentIcon> openEquipmentIcon(Equipment equip) { > List<EquipmentIcon> equipmentIcons = (List<EquipmentIcon>) > entityManager > .createQuery( > "select ei from EquipmentIcon ei where > ei.equipment.equipmentId = :equipmentId") > .setParameter("equipmentId", equip.getEquipmentId()) > .getResultList(); > > for (int i = 0; i < equipmentIcons.size(); i++) { > Equipment equipment = new Equipment(); > equipment.setEquipmentId(equipmentIcons.get(i).getEquipment() > .getEquipmentId()); > equipment.setDescription(equipmentIcons.get(i).getEquipment() > .getDescription()); > equipment.setCreationDate(equipmentIcons.get(i).getEquipment() > .getCreationDate()); > > equipment.setLastModifiedDate(equipmentIcons.get(i).getEquipment() > .getLastModifiedDate()); > equipment.setEquipmentIcons(equipmentIcons); > equipmentIcons.get(i).setEquipment(equipment); > > Icon icon = new Icon(); > icon.setIconId(equipmentIcons.get(i).getIcon().getIconId()); > icon.setDescription(equipmentIcons.get(i).getIcon() > .getDescription()); > icon.setStatus(equipmentIcons.get(i).getIcon().getStatus()); > icon.setEquipmentIcons(equipmentIcons); > equipmentIcons.get(i).setIcon(icon); > } > > return equipmentIcons; > } > > Em 8 de abril de 2010 17:42, Rafa Comim <[email protected]> escreveu: > > Você tem certeza de q isto está chegando no Flex?! >> Pq está tudo mapeado como lazy. >> >> Em 8 de abril de 2010 17:40, Paulo Kinzkowski Junior >> <[email protected]>escreveu: >> >>> Nada ainda pessoal!!! >>> >>> tentei isso: >>> var equipment:Equipment = >>> Equipment(equipmentIcons.getItemAt(i).equipment); >>> >>> E não da erro nenhum e continua vindo null. >>> Verifiquei todas as variaveis da classe e estão com os nomes idênticos. >>> Outra Idéia? >>> >>> >>> Em 8 de abril de 2010 16:49, RafaelViana <[email protected]> escreveu: >>> >>> Uma sugestão de teste: >>>> >>>> Verifique o nome das variaveis, inclusive diferenciação entre >>>> maiusculas/minusculas. >>>> Se estiver com algum caractere diferente o Java não conseguirá >>>> enxergar esse campo no Flex e vice-versa.Como consequencia o campo >>>> fica nulo. >>>> >>>> >>>> >>>> On 8 abr, 16:13, Paulo Kinzkowski Junior <[email protected]> wrote: >>>> > Davidson, >>>> > >>>> > Valeu pela força ai, mas não é isso. >>>> > Tentei e continua a mesma coisa. >>>> > Mas alguma outra idéia? >>>> > >>>> > Em 8 de abril de 2010 15:32, デビデソヌ Davidson Silva < >>>> > [email protected]> escreveu: >>>> > >>>> > >>>> > >>>> > > Você não esqueceu de colocar qual é a classe que receberá os dados >>>> > > ...(targetEntity = XPTO.class) >>>> > > Pode ser isso .... >>>> > >>>> > > @ManyToOne(fetch = FetchType.LAZY, targetEntity = Equipment.class) >>>> > >>>> > > Em 8 de abril de 2010 14:37, Paulo Kinzkowski Junior < >>>> [email protected]>escreveu: >>>> > >>>> > >> É verdade, imaginei que iria ficar difícil mesmo..... rsrsrsr >>>> > >> Então abaixo está somente a parte que interessa do meu código: >>>> > >>>> > >> EquipmentIcon.java >>>> > >> public class EquipmentIcon implements Serializable { >>>> > >>>> > >> private Icon icon; >>>> > >> private Equipment equipment; >>>> > >>>> > >> @ManyToOne(fetch = FetchType.LAZY) >>>> > >> @JoinColumn(name = "icon_id", nullable = false) >>>> > >> @NotNull >>>> > >> public Icon getIcon() { >>>> > >> return this.icon; >>>> > >> } >>>> > >>>> > >> public void setIcon(Icon icon) { >>>> > >> this.icon = icon; >>>> > >> } >>>> > >>>> > >> @ManyToOne(fetch = FetchType.LAZY) >>>> > >> @JoinColumn(name = "equipment_id", nullable = false) >>>> > >> @NotNull >>>> > >> public Equipment getEquipment() { >>>> > >> return this.equipment; >>>> > >> } >>>> > >> } >>>> > >>>> > >> Equipment.java >>>> > >> public class Equipment implements Serializable { >>>> > >>>> > >> private List<EquipmentIcon> equipmentIcons = new >>>> > >> ArrayList<EquipmentIcon>(); >>>> > >>>> > >> @OneToMany(fetch = FetchType.LAZY, mappedBy = "equipment", >>>> cascade = { >>>> > >> CascadeType.PERSIST, CascadeType.MERGE }) >>>> > >> @Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE, >>>> > >> org.hibernate.annotations.CascadeType.DELETE_ORPHAN }) >>>> > >> public List<EquipmentIcon> getEquipmentIcons() { >>>> > >> return this.equipmentIcons; >>>> > >> } >>>> > >>>> > >> public void setEquipmentIcons(List<EquipmentIcon> >>>> equipmentIcons) { >>>> > >> this.equipmentIcons = equipmentIcons; >>>> > >> } >>>> > >> } >>>> > >>>> > >> Icon.java >>>> > >> public class Icon implements Serializable { >>>> > >>>> > >> private List<EquipmentIcon> equipmentIcons = new >>>> > >> ArrayList<EquipmentIcon>(); >>>> > >>>> > >> @OneToMany(fetch = FetchType.LAZY, mappedBy = "icon", cascade = >>>> { >>>> > >> CascadeType.PERSIST, CascadeType.MERGE }) >>>> > >> @Cascade( { org.hibernate.annotations.CascadeType.SAVE_UPDATE, >>>> > >> org.hibernate.annotations.CascadeType.DELETE_ORPHAN }) >>>> > >> public List<EquipmentIcon> getEquipmentIcons() { >>>> > >> return this.equipmentIcons; >>>> > >> } >>>> > >>>> > >> public void setEquipmentIcons(List<EquipmentIcon> >>>> equipmentIcons) { >>>> > >> this.equipmentIcons = equipmentIcons; >>>> > >> } >>>> > >> } >>>> > >>>> > >> EquipmentService.java >>>> > >> public class EquipmentService implements Serializable { >>>> > >>>> > >> @In >>>> > >> private EntityManager entityManager; >>>> > >>>> > >> @SuppressWarnings("unchecked") >>>> > >> public List<EquipmentIcon> openEquipmentIcon(Equipment equip) { >>>> > >> List<EquipmentIcon> equipmentIcons = (List<EquipmentIcon>) >>>> > >> entityManager >>>> > >> .createQuery( >>>> > >> "select ei from EquipmentIcon ei where >>>> > >> ei.equipment.equipmentId = :equipmentId") >>>> > >> .setParameter("equipmentId", >>>> equip.getEquipmentId()) >>>> > >> .getResultList(); >>>> > >>>> > >> return equipmentIcons; >>>> > >> } >>>> > >> } >>>> > >>>> > >> EquipmentIcon.as >>>> > >> package { >>>> > >>>> > >> [Bindable] >>>> > >> [RemoteClass(alias="meuPacote.EquipmentIcon")] >>>> > >> public class EquipmentIcon { >>>> > >> public var equipment:Equipment; >>>> > >> public var icon:Icon; >>>> > >>>> > >> public function EquipmentIcon() { >>>> > >>>> > >> } >>>> > >> } >>>> > >> } >>>> > >>>> > >> Equipment.as >>>> > >> package { >>>> > >> import mx.collections.ArrayCollection; >>>> > >>>> > >> [Bindable] >>>> > >> [RemoteClass(alias="meuPacote.Equipment")] >>>> > >> public class Equipment { >>>> > >> public var equipmentIcons:ArrayCollection; >>>> > >>>> > >> public function Equipment() { >>>> > >>>> > >> } >>>> > >> } >>>> > >> } >>>> > >>>> > >> Icon.as >>>> > >> package { >>>> > >> import mx.collections.ArrayCollection; >>>> > >>>> > >> [Bindable] >>>> > >> [RemoteClass(alias="meuPacote.Icon")] >>>> > >> public class Icon { >>>> > >> public var equipmentIcons:ArrayCollection; >>>> > >>>> > >> public function Icon() { >>>> > >>>> > >> } >>>> > >> } >>>> > >> } >>>> > >>>> > >> Depois que eu faço a busca eu consigo acessar a lista de objetos >>>> > >> equipmentIcon e os objetos filhos no Java perfeitamente. >>>> > >> Quando eu tento acessar a lista de objetos equipmentIcon no Flex eu >>>> > >> consigo, mas os objetos filhos não, os objetos vem como null. >>>> > >>>> > >> Ex.: >>>> > >> private function successOpenEquipmentIcon(event:ResultEvent):void { >>>> > >> var equipmentIcons:EquipmentIcon = event.result as >>>> ArrayCollection; >>>> > >> var equipment:Equipment = equipmentIcons.getItemAt(i).equipment >>>> as >>>> > >> Equipment; >>>> > >> var icon:Icon = equipmentIcons.getItemAt(i).icon as Icon; >>>> > >> Alert.show("EquipmentIcon = " + equipmentIcons); // retorna >>>> > >> "EquipmentIcon = [object EquipmentIcon]" >>>> > >> Alert.show("Equipment = " + equipment); // retorna "Equipment >>>> null" >>>> > >> Alert.show("Icon = " + icon); // retorna "Icon null" >>>> > >> } >>>> > >>>> > >> Alguém já passou por isso? >>>> > >>>> > >> -- >>>> > >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> > >> Para enviar uma mensagem, envie um e-mail para >>>> [email protected] >>>> > >> Para sair da lista, envie um email em branco para >>>> > >> [email protected] >>>> > >> Mais opções estão disponíveis emhttp:// >>>> groups.google.com/group/flexdev >>>> > >>>> > > -- >>>> > > Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> > > Para enviar uma mensagem, envie um e-mail para >>>> [email protected] >>>> > > Para sair da lista, envie um email em branco para >>>> > > [email protected] >>>> > > Mais opções estão disponíveis emhttp:// >>>> groups.google.com/group/flexdev >>>> >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para [email protected] >>>> Para sair da lista, envie um email em branco para >>>> [email protected] >>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>>> >>>> To unsubscribe, reply using "remove me" as the subject. >>>> >>> >>> -- >>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>> Para enviar uma mensagem, envie um e-mail para [email protected] >>> Para sair da lista, envie um email em branco para >>> [email protected] >>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>> >> >> >> >> -- >> ______________________ >> >> Atenciosamente, >> >> Rafael Comim >> >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para [email protected] >> Para sair da lista, envie um email em branco para >> [email protected] >> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> > > -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
