É 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 flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

To unsubscribe, reply using "remove me" as the subject.

Responder a