2013-04-07 323 views
3

對於原始java.util.Map是否存在像this這樣的「對象散列映射」?原始Java Map的對象散列映射(將POJO映射到映射中)

的基本思想可以(通常是註釋)「地圖」定製類存儲在一個原始地圖:

Map<String,String> map = new HashMap<String,String>(); 
Class car = new Car(1, "Red"); 

Ohm ohm = new Ohm(map); // set the back-end map to use. 
Car result = ohm.put(car); // persist annotated class 
result = ohm.get(1); // get by id 
result = ohm.get("color", "Red"); // get by property query 

一個原因,我問這個是因爲我已經開發了一個庫,有效地映射到GAE Datastore原始Map接口:

Map<String, String> map = Datastorecast.getMap("somemap"); 

反正我已經就如何實現它的思維,而無需重新發明輪子:

  • 使用谷歌GSON或JSON.Simple序列化對象到java.util.Map
  • 序列化的另外一個選擇是XStream的
  • 該從那裏得到的地圖複製到數據存儲支持的地圖容器

更新:

我意識到的技術來實現這一(Redis的風格):

Class car = new Car(1, "Red"); 

map.put("classname:com.mycompany.Car:uid:", car.getId()); 
map.put("classname:com.mycompany.Car:color:", car.getColor()); 
  • 所以它只是一個註釋類的問題,以便OHM類可以反映要放入地圖的值。

回答

0

怎麼樣trove4j TCustomHashMap?看起來,它可能正是你正在尋找的東西。

+0

謝謝,但看着它,看起來仍然是一個地圖界面。我實際上已經有一個持久化映射(帶有一個java.util.Map接口),我實際上正在尋找的是將POJO「映射」爲一組Map或其他類似的東西。 – xybrek 2013-04-09 05:51:51

+0

查看我更新的問題 – xybrek 2013-04-09 05:56:08