我正在使用 JDO 的 Datanucleus 教程应用程序,特别是这个。
无论我尝试哪种“继承策略”,表格布局都是一样的。我想要两张表,一张用于 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 文档建议的那样,它应该具有继承策略“竞争表”。
如果重要的话,我的目标数据库是在 Ubuntu 10.04 上运行的 PostgreSQL 8.4。
还有其他人遇到这个问题并找到了解决方案吗?