2011-11-09 20 views
3

我有一個相對簡單的課程,主要支持Map<String,String>。我想堅持這個課程,並能夠在地圖內的鍵內進行搜索。基於這Stack Overflow question我感覺到地圖只能作爲序列化的blob持久化。在不使用DataType.SERIALIZABLE的情況下在ORMLite中持有Map <String,String>?

我也看到在ORMLite website如下:

public class Account { 
    … 
    @ForeignCollectionField(eager = false) 
    ForeignCollection<Order> orders; 
    … 
} 

在上面的例子中,@ForeignCollectionField註釋標記 的訂單字段是匹配 帳戶訂單的集合。訂單的字段類型必須是ForeignCollection 或Collection<T> - 不支持其他集合。該 @ForeignCollectionField註解支持以下領域:

基於上述我得到了我想要的感覺是不可能的,但我想我會在這裏檢查來確定。我堅持使用Hibernate,但我寧願使用類似ORMLite的東西!

回答

3

是的,在ORMLite沒有辦法持續Map。遵循KISS原則,僅支持簡單的Collection類。 SetMap有更多的接口權重,他們可能永遠不會被支持。

我沒有任何超級偉大的工作爲你服務。您顯然可以使用ForeignCollection,然後在您需要以這種方式訪問​​集合時創建本地Map字段。也許addOrder()方法會將其添加到ForeignCollectionMap

+0

灰色,感謝您的建議,並感謝ORMLite的偉大工作。 –

+0

謝謝@Jason。對不起,我無法提供更多幫助。 – Gray

4

一個非常簡單的解決方案是讓getters和setter在後臺使用JSONObject,並將該對象作爲String存儲在數據庫中。

但是,JSON不是開箱即用的Java的一部分,所以如果您不使用它,這可能會感覺不必要。

相關問題