Я написал свою собственную реализацию 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 не существует.