2013-10-02 34 views
-1

我試圖插入蒙戈DB和我得到以下錯誤,當我嘗試插入一個喬達賺大錢對象不能序列化類org.joda.money.BigMoney

「不能序列類組織.joda.money.BigMoney」

但是根據Java文檔BigMoney確實實現序列化(http://www.joda.org/joda-money/apidocs/org/joda/money/BigMoney.html

實現序列化時,爲什麼會出現這個錯誤?

+0

你知道mongo DB正在使用內建的Java序列化嗎?我自己並不熟悉它,但如果它使用自己的序列化方案,可能會有不同於簡單實現'Serializable'的要求,我不會感到驚訝。 –

+0

我從來沒有使用MongoDB,但我知道,它使用JSON作爲內部格式。所以可能你應該寫一個轉換BigMoney轉換爲JSON格式的轉換器? –

+0

@SergiyMedvynskyy MongoDB使用BSON作爲內部格式,而不是JSON。這是一個小而重要的區別。 – Philipp

回答

1

Java驅動程序只能串行化簡單的原始類型而不是複雜的 - 它不使用Java序列化。

如果您想使用Joda錢,您必須自己從BigMoney對象轉換爲驅動程序能夠理解的一個(或可能更多)原始值。

在3.x版本的驅動程序中,這會變得容易很多,但現在這些是您的選擇。