簡體   English   中英

讀取多個條目模板

[英]Reading multiple Entries template

我正在與Apache River javaspaces項目一起工作,並且試圖找到一種寫模板的方法,該模板可以讀取空間中的多個條目並返回我尚未存儲的條目,例如:

用戶將三個條目寫入空間“ entry1”,“ entry2”,“ entry3”。 稍后,同一用戶嘗試從該空間讀取條目,每次該空間返回“ entry1”時,因為未從空間中刪除它,它將始終與給定模板匹配。

寫空間:

SpaceEntry string = new SpaceEntry("User","entry1"); 
                    space.write(string, null, Lease.FOREVER);

從太空讀取:

SpaceEntry template = new SpaceEntry(); 
                    SpaceEntry read = (SpaceEntry)space.readIfExists(template,null,Long.MAX_VALUE);

$ read存儲在列表中,重復讀取過程。

模板:

public SpaceEntry (String o, String m){
    this.Owner = o;
    this.Message = m;
}

最后,關於使用已獲取的值列表動態修改模板的任何建議,以便條目保留在空間中,但返回不同的條目?

我考慮過從空間中獲取條目並將它們存儲在列表中,然后在沒有新條目留下時將它們返回到空間,但這會引起各種混亂,丟失數據和松散的多用戶兼容性。

編輯1:

好吧,在擺弄我的代碼之后,我想出了一種方法。

模板必須更改為使用另一個參數ID。

public SpaceEntry (int id, String o, String m){
this.ID = id;
this.Owner = o;
this.Message = m;

}

現在,每次用戶想要添加一條消息時,代碼都必須通過將模板中的id值增加1直到不留任何內容,並使用缺少的ID號添加新消息來讀取空間中的現有條目。 可以運行相同的代碼來讀取空間中的所有條目,並按ID號返回它們。

但是,如果刪除其中一個條目,這將構成威脅,代碼將如何處理缺少的ID,例如1,2, ,4 ,,_,7有什么建議?

編輯2:

似乎事務管理器可能是解決方法。

在進行了其他一些研究之后,我遇到了這個問題的答案。 為了讀取多個條目,您必須實現一個事務管理器,該管理器基本上將與該模板匹配的所有條目讀入一個事務,一個排序列表,並且該管理器僅添加尚未在事務中的條目。 提交事務后,空間“條目”將保持不變,但您將獲得它們的完整列表。

暫無
暫無

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

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