есть ли у кого-нибудь пример кода, как заменить java List (LinkedList или ArrayList) чем-то похожим в BerkeleyDB?Моя проблема в том, что я должен заменить списки, чтобы масштабировать их за пределы основной памяти.Какой-то простой пример кода был бы действительно хорош.
Теперь я использовал простую привязку TupleBinding для целых чисел (ключи) и привязку SerialBinding для класса Diff (значения данных).
Теперь яполучаю сообщение об ошибке:
14:03:29.287 [pool-5-thread-1] ERROR o.t.g.view.model.TraverseCompareTree - org.treetank.diff.Diff; local class incompatible: stream classdesc serialVersionUID = 8484615870884317488, local class serialVersionUID = -8805161170968505227
java.io.InvalidClassException: org.treetank.diff.Diff;несовместимый локальный класс: stream classdesc serialVersionUID = 8484615870884317488, локальный класс serialVersionUID = -8805161170968505227
Используемые классы слушателя и TransactionRunner:
/** {@inheritDoc} */
@Override
public void diffListener(final EDiff paramDiff, final IStructuralItem paramNewNode,
final IStructuralItem paramOldNode, final DiffDepth paramDepth) {
try {
mRunner.run(new PopulateDatabase(mDiffDatabase, mKey++, new Diff(paramDiff, paramNewNode.getNodeKey(), paramOldNode.getNodeKey(), paramDepth)));
} catch (final Exception e) {
LOGWRAPPER.error(e.getMessage(), e);
}
}
private static class PopulateDatabase implements TransactionWorker {
private StoredMap<Integer, Diff> mMap;
private int mKey;
private Diff mValue;
public PopulateDatabase(final DiffDatabase paramDatabase, final int paramKey, final Diff paramValue) {
Objects.requireNonNull(paramDatabase);
Objects.requireNonNull(paramValue);
mMap = paramDatabase.getMap();
mKey = paramKey;
mValue = paramValue;
}
@Override
public void doWork() throws DatabaseException {
mMap.put(mKey, mValue);
}
}
Я не знаю, почему этоне работает: - /
Редактировать: Извините, мне просто нужно было удалить созданную среду / базу данных и создать новую.