簡體   English   中英

如何在Hibernate / BlazeDS中管理關聯實體

[英]How to manage association entities in Hibernate / BlazeDS

我一直在從事Java / Hibernate / BlazeDS集成的工作-但一直困擾於以跨BlazeDS一對多的關系發送子實體...

首先,我在MS Sql Server中有一個Client和ClientLinks表

現在,在客戶端的Java端,定義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端時,我收到了一個強類型的Client(很棒!),但ClientLinks由mx.collections::ArrayCollection 我希望ClientLink映射到我的as3 ClientLink並像client.clientLinks[0].linkname等那樣訪問它們。

誰能讓我直截了當地了解設置此方法的最佳方法?

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));
    }

    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM