Je travaille avec l'application de tutoriel Datanucleus pour JDO, specifically this one. Quelle que soit la «stratégie d'héritage» que j'essaie, la disposition de la table est la même. Je voudrais deux tables, une pour PRODUCT et une pour BOOK, mais en utilisant la configuration ci-dessous, je reçois seulement la table PRODUCT avec des colonnes à la fois pour le produit de classe et le livre de classe.La génération de schéma Datanucleus ignore la directive "inheritance strategy ="
<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>
La structure du répertoire est exactement comme dans le didacticiel, tout comme le fichier build.xml. J'ai essayé de générer le schéma via la tâche Ant et la ligne de commande.
J'utilise la séquence de commandes:
ant clean
ant compile
ant enhance
ant createschema
Le schéma est généré, mais pas la documentation DataNucleus suggère qu'il devrait être avec la stratégie d'héritage « concurrence table. »
Ma base de données cible est PostgreSQL 8.4 exécutée sur Ubuntu 10.04 si cela est important.
Quelqu'un d'autre a rencontré ce problème et trouvé une solution?
Rien ne doit être changé. Je cours la version actuelle (2.2) en utilisant Ant et tout fonctionne. Votre situation est symptomatique de quelqu'un qui n'a pas utilisé le build.xml fourni et, par conséquent, n'a pas les fichiers ORM dans votre CLASSPATH – DataNucleus
D'accord, je vais essayer la version 2.2. Les problèmes ci-dessus provenaient d'essayer la version 2.1. – Marek