簡體   English   中英

點燃@AffinityKeyMapped用於整數的緩存鍵

[英]Ignite @AffinityKeyMapped for cache keys that are integers

在閱讀https://apacheignite.readme.io/docs/affinity-collocation和ignite-examples中的文檔時,使用@AffinityKeyMapped的示例假定鍵是一個對象:PersonKey是具有personId和companyId以及companyId的類有注釋。

在我的用例中,我的密鑰是一個簡單的整數。 我正在使用從WebConsole生成的域模型。 我有2個類:Item和ItemInstance,而ItemInstance具有對Item的外鍵引用。 我的模型定義如下:

public class ItemInstance implements Serializable {
    private static final long serialVersionUID = 0L;

    @QuerySqlField(index = true)
    @AffinityKeyMapped
    private int itemId;

    private String serialNumber;
...
}

public class Item implements Serializable {
    private String name;
...
}

在節點啟動和緩存加載期間,沒有錯誤,但是在執行查詢時,我得到的結果不完整-它僅檢索並置的數據。 我知道這是因為,當我在Web控制台中運行相同的查詢並勾選了“允許非並置的聯接”時,我得到了完整的結果。

請注意,我沒有像其他示例中那樣使用AffinityKey ,因為我正在從3rdparty數據庫中進行讀取,而不進行任何put

您能告訴我以下內容嗎?

  1. 點燃是否在整數鍵上支持@AffinityKeyMapped,類似於我上面的用法;

  2. 我們是否需要在spring XML配置中也定義@AffinityKeyMapped? 我以為這可能是問題所在,但在Web Console或在線中都找不到。

謝謝!

相似性鍵值必須是鍵對象的一部分。 因此,如果您使用同一位置,則僅使用簡單的整數作為緩存鍵是不夠的,因為您的鍵至少應包含唯一的對象ID和相似性鍵。 因此,您應該使用這兩個字段創建一個對象,並用批注標記后者。

如果您不想使用注釋或沒有類,則可以通過CacheKeyConfiguration [1]提供相似性關鍵字字段名稱。 但是請注意,這仍然需要將復合對象用作鍵。

[1] https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/CacheKeyConfiguration.html

暫無
暫無

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

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