2009-06-08 4 views
0

次のスタックトレースが取得されています。あなたの最初の印象が何であるか知りたいだけです。ベクターをBerkeley DBに保存することはできないと言っているようです。それ以外に何ができるのでしょうか?Berkeley DBのJava版でベクトルの保存をサポートしています

Exception in thread "Timer-0" java.lang.IllegalArgumentException: Class could not be loaded or is not persistent: java.util.Vector 
    at com.sleepycat.persist.impl.PersistCatalog.createFormat(PersistCatalog.java:588) 
    at com.sleepycat.persist.impl.FieldInfo.collectRelatedFormats(FieldInfo.java:131) 
    at com.sleepycat.persist.impl.ComplexFormat.collectRelatedFormats(ComplexFormat.java:262) 
    at com.sleepycat.persist.impl.PersistCatalog.createFormat(PersistCatalog.java:616) 
    at com.sleepycat.persist.impl.PersistCatalog.addNewFormat(PersistCatalog.java:805) 
    at com.sleepycat.persist.impl.PersistCatalog.getFormat(PersistCatalog.java:745) 
    at com.sleepycat.persist.impl.PersistEntityBinding.getOrCreateFormat(PersistEntityBinding.java:176) 
    at com.sleepycat.persist.impl.PersistEntityBinding.<init>(PersistEntityBinding.java:36) 
    at com.sleepycat.persist.impl.Store.getPrimaryIndex(Store.java:328) 
    at com.sleepycat.persist.EntityStore.getPrimaryIndex(EntityStore.java:257) 
    at db.LastTopMovesDA.<init>(LastTopMovesDA.java:24) 
    at dao.LastTopMove.saveLastTopMove(LastTopMove.java:59) 
    at model.logic.MoveFilter.getTopMoves(MoveFilter.java:172) 
    at controller.Poller$1.run(Poller.java:50) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    at java.util.TimerThread.run(Unknown Source) 

答えて

1

おそらく、データをシリアル化して保存用にBerkeley DBに渡す必要があります。

+0

シリアル化せずにHashMapを保存できました。この2つの間で、Vectorがシリアライズする必要があることを意味するが、HashMapはないことを意味する – Ankur

+0

HashMapはすでにキー値構造を持っているので、バークレーdbはストレージを透過的に処理し、 /値のペアを作成し、データベースに格納します。 詳細は のドキュメントをご覧ください(例:) – ynimous

関連する問題