2013-04-07 320 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