原始Java Map的对象哈希映射(将POJO映射到Map)

时间:2013-04-07 23:06:34

标签: java orm

原始java.util.Map是否有像this这样的“对象哈希映射”?

能够“定制”自定义类(通常通过注释)存储在原始地图中的基本思想:

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");

无论如何,我一直在考虑如何在不重新发明轮子的情况下实现它:

  • 使用Google 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类可以反映要放入地图的值。

1 个答案:

答案 0 :(得分:0)

trove4j TCustomHashMap怎么样?看起来,它可能正是您正在寻找的。