配置hibernate.reveng.xml以检测带有hibernate3 maven插件和Postgre的序列PK生成器

配置hibernate.reveng.xml以检测带有hibernate3 maven插件和Postgre的序列PK生成器,hibernate,maven-2,maven,maven-plugin,Hibernate,Maven 2,Maven,Maven Plugin,有没有办法配置hibernate3 maven插件,以便检测到主键的序列生成器?我对hibernate配置使用自底向上的方法(这意味着让hibernate工具通过jdbc连接在现有数据库模式上通过反向工程为您生成hibernate配置)。我已经读过了,但也已经读过了(这两个可以是无关的,但也可以留下一个提示)。我的hibernate.reveng.xml如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernat

有没有办法配置hibernate3 maven插件,以便检测到主键的序列生成器?我对
hibernate
配置使用自底向上的方法(这意味着让
hibernate工具
通过
jdbc连接
在现有数据库模式上通过
反向工程
为您生成hibernate配置)。我已经读过了,但也已经读过了(这两个可以是无关的,但也可以留下一个提示)。我的
hibernate.reveng.xml
如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering 
 SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

<hibernate-reverse-engineering>
    <table name="ORDERS">
        <primary-key>
            <!-- setting up a specific id generator for a table -->
            <generator class="sequence">
                <param name="sequence">ORDERS_ORDER_ID_seq</param>
            </generator>
            <key-column name="ORDER_ID"/>
        </primary-key>
    </table>
</hibernate-reverse-engineering>
…但收到的却是:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2010-06-06 18:55:42 by Hibernate Tools 3.2.2.GA -->
<hibernate-mapping>
    <class name="some.package.Orders" table="orders" schema="public">
        <id name="orderId" type="long">
            <column name="order_id" />
            <generator class="assigned" />
        </id>
    ...
    </class>
</hibernate-mapping>

...
我知道我的
hibernate.reveng.xml
正在被
hibernate3 maven插件
读取,因为每当文件中出现语法错误时,我都会遇到maven错误,所以
pom.xml
似乎是正确的,
hibernate.reveng.xml
在语法上是正确的


有什么线索吗?

你能试试
..
(这是我在或中看到的)。比如说:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2010-06-06 18:55:42 by Hibernate Tools 3.2.2.GA -->
<hibernate-mapping>
    <class name="some.package.Orders" table="orders" schema="public">
        <id name="orderId" type="long">
            <column name="order_id" />
            <generator class="sequence">
                <param name="sequence">ORDERS_ORDER_ID_seq</param>
            </generator>
        </id>
    ...
    </class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering 
 SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
    <table name="ORDERS">
        <primary-key>
            <!-- setting up a specific id generator for a table -->
            <generator class="sequence">
                <param name="table">ORDERS_ORDER_ID_seq</param>
            </generator>
            <key-column name="ORDER_ID"/>
        </primary-key>
    </table>
</hibernate-reverse-engineering>

订单\订单\ ID\顺序

下面是最终对我有用的代码。我只需以小写形式传递
顺序
表名(我在DDL中使用大写字母,所以我实际上不明白,但这是可行的)。还需要提供
schema
属性。
是可选的(如果遵循hibernate命名约定)


订单\订单\ ID\顺序

感谢您的回答,它帮助我找到了解决方案。但是,
name
属性不是问题所在。这两种方法,即
序列
都可以根据需要正常工作。我用对我有用的代码更新了我的问题。@mmm:嗯,不知道我的答案有什么帮助,但是。。。不客气:)请随意发布您的解决方案作为答案并接受它(这实际上是您应该做的)。好的,添加解决方案作为答案。您的回答通过指向另一个讨论得到了帮助,我最终注意到
模式
属性可能丢失:)。这看起来很有希望,但在我的例子中,Hibernate忽略了
标记,只处理
表过滤器
。当插入
主键
块时,Hibernate会在稍后的情况下发出抱怨。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering 
 SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >

<hibernate-reverse-engineering>
    <table name="orders" schema="public">
        <primary-key>
            <!-- setting up a specific id generator for a table -->
            <generator class="sequence">
                <param name="sequence">ORDERS_ORDER_ID_seq</param>
            </generator>
        </primary-key>
    </table>
</hibernate-reverse-engineering>