Мне нужно создать базу данных с двумя типами «модулей».datanucleus/JDO отношение ко многим различным классам)
- домена ориентированные классы
- метаданных классы
В первой группе это просто простой (или сложной, а) СУБД. Второй «блок» - это классы метаданных, которые собирают информацию о классах из первого блока.
То, что я сделал:
создал класс сущностей, который является предком всех Фро 1-й части:
@PersistenceAware @Inheritance(strategy = InheritanceStrategy.NEW_TABLE) public abstract class Entity implements Serializable { private static final long serialVersionUID = 1L; }
создания нормальной схемы со всеми субъектами наследуют как-то
Entity
класса.Создано
InternalMapping
класс как родитель всего понятия.@PersistenceCapable @Inheritance(strategy = InheritanceStrategy.NEW_TABLE) public abstract class InternalMapping implements Serializable { private static final long serialVersionUID = 1L; private Entity entity; //.. cut off getter and setter }
Создан
InternalMapping
ребенка, который должен иметь эту функцию.
И наконец, я нашел, что это не работает. Вероятно, потому что у Entity нет поля. Но если так, то я бы ожидал 2 поля: a primary key
и class name
. Таким образом, я бы обозначил каждую сущность на 2 координаты: ID
и class name
.
Любая идея, как решить эту проблему? Наконец, как выглядит JDOQL
.
Ps. Я знаю, что RDBMS
- не лучшее решение для таких проблем, но люди, с которыми я работаю, хотят иметь реляционную базу данных.
Большое спасибо, ребята за текстовые издания. Выглядит намного лучше. – Jacek
* какой * не работает? создание схемы? в этом случае, что говорит журнал? JDOQL для чего? Откуда это «название класса»? вы не определили дискриминатор –
Созданная схема не имеет соответствующих полей на стороне InternalMapping. Однако я подумал об этом и, вероятно, нашел решение для этого, используя AOP. Я расскажу о завтрашнем дне после тестов. – Jacek