Я работаю с учебным приложением Datanucleus для JDO, конкретно этот.
Независимо от того, какую «стратегию наследования» я использую, макет таблицы одинаков. Мне нужны две таблицы, одна для PRODUCT и одна для BOOK, но, используя приведенную ниже конфигурацию, я получаю только таблицу PRODUCT со столбцами как для класса Product, так и для класса Book.
<class name="Product" identity-type="sequence">
<inheritance strategy="complete-table"/>
<field name="name">
<column name="PRODUCT_NAME" length="100" jdbc-type="VARCHAR"/>
</field>
<field name="description">
<column length="255" jdbc-type="VARCHAR"/>
</field>
</class>
<class name="Book" identity-type="sequence">
<field name="author">
<column length="40" jdbc-type="VARCHAR"/>
</field>
<field name="isbn">
<column length="20" jdbc-type="CHAR"/>
</field>
<field name="publisher">
<column length="40" jdbc-type="VARCHAR"/>
</field>
</class>
Структура каталогов точно такая же, как и в руководстве, как и в файле build.xml. Я попытался создать схему как с помощью задачи Ant, так и с помощью командной строки.
Я использую последовательность команд:
ant clean
ant compile
ant enhance
ant createschema
Схема генерируется, но не так, как в документации Datanucleus предполагается, что она должна быть со стратегией наследования "compete-table".
Моя целевая база данных — PostgreSQL 8.4, работающая на Ubuntu 10.04, если это имеет значение.
Кто-нибудь еще сталкивался с этой проблемой и нашел решение?