2012-11-01 46 views
3

我使用的是OrientDB,我想在一个字段中保存一个枚举。喜欢的东西:在OrientDB中保存Java枚举

db.save(new ODocument("Car").field("color", Colors.BLUE)); 

这是我得到的错误:

 
Exception in thread "main" com.orientechnologies.orient.core.exception.OSerializationException: Cannot serialize the object since it's not implements the OSerializableStream interface 

最简单的办法来解决,这将是使“颜色”属性String,然后保存它像Colors.BLUE.name()但如果是这样的话,我很确定东方应该有办法为我处理这个问题,或者更好的办法是以更高效的方式处理这个问题。

有谁知道使用枚举的更好方法是什么?

+0

你使用的是什么版本? – Ami

+0

@ILLA我使用的是1.2.0版本 –

回答

0

为该类型注册一个自定义序列化程序 - 看起来您需要为其创建一个OObjectSerializer,并将其注册到OObjectSerializerContext。

+0

您是否使用自己的枚举Color或者您输错颜色?如果您没有使用自己的枚举,那么我猜你不想按名称序列化Color.BLUE无论如何 - 重要信息是RGB成分,因为您可以保存(并且再次反序列化)任何颜色。否则,你会被卡住只有少数具有实际名称。 – user467257