É 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 em http://groups.google.com/group/flexdev
To unsubscribe, reply using "remove me" as the subject.