2012-10-17 38 views
0

我具有由用戶id分配的實體(請求)。對於每個userId,我都會有一個索引,對吧?如何索引分區字段?

不過,我想快速搜索通過用戶id的請求。有沒有簡單的方法來做到這一點?或者我需要選擇另一個字段來創建分區?

+0

對不起,我的意思是找到所有與該userId相關的請求。 – mvallebr

回答

1

,如果你願意的話,可以劃分兩種方式。假設你這樣做

public class Request { 
    @NoSqlId 
    @NoSqlIndexed 
    private String uniqueId; 

    @NoSqlIndexed 
    @NoSqlPartitionedBy 
    @NoSqlManyToOne 
    private User user; 

    @NoSqlIndexed 
    @NoSqlPartitionedBy 
    private LocalDate beginningOfEachMonth; 
} 

如果你喜歡,你可以有私人字符串userId而不是User;)。現在

,您可以使用一個月爲重點的開始查詢到時間分區,只是做一個查詢,也可以使用用戶的關鍵查詢到用戶分區。

如果通過兩件事情分區應該是你命名查詢...

query="PARTITIONS("user", :user) SELECT r FROM TABLE as r" 

如果僅通過用戶分區表,那麼您可以編寫

query="PARTITIONS(:user) SELECT r FROM TABLE as r" 

注意:你的唯一原因有時需要指數喜歡我的主鍵是在主鍵的範圍查詢....一個等於查詢其中pk =一定的價值,你並不需要一個指數明顯,因爲你可以通過主鍵查找本身。

院長