Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java can';t序列化类org.joda.money.BigMoney_Java_Mongodb_Serialization_Joda Money - Fatal编程技术网

Java can';t序列化类org.joda.money.BigMoney

Java can';t序列化类org.joda.money.BigMoney,java,mongodb,serialization,joda-money,Java,Mongodb,Serialization,Joda Money,我正在尝试插入mongo DB,当我尝试插入joda big money对象时,出现以下错误 “无法序列化类org.joda.money.BigMoney” 然而,根据java文档,BigMoney确实实现了serializable() 为什么在实现serializable时会发生此错误?Java驱动程序只能序列化简单的基元类型,而不能序列化复杂的基元类型-它没有使用Java序列化 如果您想使用Joda money,您必须自己将BigMoney对象转换为驱动程序能够理解的一个(或多个)基本值 在

我正在尝试插入mongo DB,当我尝试插入joda big money对象时,出现以下错误

“无法序列化类org.joda.money.BigMoney”

然而,根据java文档,BigMoney确实实现了serializable()


为什么在实现serializable时会发生此错误?

Java驱动程序只能序列化简单的基元类型,而不能序列化复杂的基元类型-它没有使用Java序列化

如果您想使用Joda money,您必须自己将BigMoney对象转换为驱动程序能够理解的一个(或多个)基本值


在3.x版本的驱动程序中,这将变得容易得多,但现在这些是您的选择。

您知道mongo DB正在使用内置的Java序列化吗?我自己并不熟悉它,但如果它使用自己的序列化方案,我也不会感到惊讶,这可能有不同于简单实现
Serializable
的要求。我从未使用过MongoDB,但我知道它使用JSON作为内部格式。因此,您可能应该编写一个转换器,将BigMoney转换为JSON格式?@SergiymedvynskyMongoDB使用BSON作为内部格式,而不是JSON。这是一个很小但很重要的区别。