DataNucleus, JDO, как сохранить мою собственную реализацию List? - PullRequest
2 голосов
/ 03 января 2012

Я написал свою собственную реализацию java.util.List, и теперь я хочу сохранить ее в MySQL, используя DataNucleus. Моя реализация состоит из открытого класса, который реализует интерфейс List, и частного класса, который реализует узел для этого списка.

Когда я запускаю SchemaTool в Eclipse, создается только таблица для моей реализации Node, а когда я запускаю свое приложение, я получаю следующую ошибку:

Persistent class "a.b.c.util.DtvList" has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class.

Вот начало моего класса реализации List. @PersistenceCapable @Inheritance(strategy=InheritanceStrategy.COMPLETE_TABLE) public class DtvList<E extends Comparable<E>> implements List { @Persistent private DtvListNode first = null; private DtvListNode last = null; private int length = 0; public DtvList(){};

Кроме того, у меня есть только реализация для метода add(E object), все остальные методы выдают RuntimeException. Может ли это быть проблема?

PS Я также пытался реализовать еще несколько методов, таких как getIterator и другие, и я даже пытался написать подключаемый модуль отображения (http://www.datanucleus.org/extensions/rdbms_java_types.html),, но безрезультатно. TABLE не создается SchemaTool в базе данных.

PS / 2 Добавлен класс Mapping для реализации DtvListNode, теперь у меня есть таблица для DtvList, но не для DtvListNode. Это все еще не работает. Но я все еще получаю исключение org.datanucleus.store.exceptions.NoTableManagedException, что таблица DtvList не существует.

1 Ответ

1 голос
/ 22 февраля 2012

Я не думаю, что DataNucleus поддерживает пользовательскую реализацию List для отображения связей.

Если ваши списки имеют небольшой размер, и ваша реализация может поддерживать конструктор копирования и List (), вы можете отобразить стандартный Listи реализовать LoadCallback и StoreCallback для управления преобразованием.Очевидно, что если у вас будет много постоянных операций в этом списке, он будет довольно грязным ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...