我一直致力于Java / Hibernate / BlazeDS集成 - 但我很难在BlazeDS中以一对多的关系发送子实体...
对于初学者,我在MS Sql Server中有一个Client和ClientLinks表
现在客户端的java-side定义ClientLinks实体的属性是
private Set clientLinks = new HashSet(0);
在AS3一侧,属性设置器是
public function set clientProfiles(value:mx.collections.ICollectionView):void {
const oldValue:mx.collections.ICollectionView = this._clientProfiles;
if (oldValue != value) {
this._clientProfiles = value;
dispatchUpdateEvent("clientProfiles", oldValue, value);
}
}
我正在使用farrata系统插件来生成基于java版本的AS3(可能是我的问题)我想知道是否有一种旧的学校方式来做到这一点。
现在发生的事情是当我从Flex客户端调用方法Java端时,我收到了一个强类型客户端(太棒了!)但ClientLinks由mx.collections::ArrayCollection
表示。我希望ClientLinks映射到我的as3 ClientLinks并访问它们,如client.clientLinks[0].linkname
等等。
任何人都可以直接告诉我最好的设置方法吗?
答案 0 :(得分:0)
Java集合将始终映射为ArrayCollection
。如果你想要强类型的AS3集合,你应该使用包装类:
public class ClientLinkCollection implements IList, ICollectionView
{
private var _source: ArrayCollection = null;
public function ClientLinks(source: ArrayCollection): void
{
if (source is ArrayCollection)
_source = ArrayCollection(source);
else
throw new TypeError("Invalid argument type!");
}
public function getClientLinkItem(index: int): ClientLink
{
return ClientLink(_source.getItemAt(index));
}
...
}