私はJDO用のDatanucleusチュートリアルアプリケーション、特にこれを使用しています。
どの「継承戦略」でも、テーブルのレイアウトは同じです。PRODUCT用とBOOK用の2つのテーブルが必要ですが、以下の構成を使用すると、ProductクラスとBookクラスの両方の列を持つPRODUCTテーブルのみが取得されます。
<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」を使用する必要があることが示されているため、生成されません。
私のターゲットデータベースは、Ubuntu10.04で実行されているPostgreSQL8.4です。
他の誰かがこの問題に遭遇し、解決策を見つけましたか?