Hibernate-session.flush上的列名重复

Hibernate-session.flush上的列名重复,hibernate,hsqldb,Hibernate,Hsqldb,使用hibernate和Hsqldb-通过事务合并对象列表。调用session.flush()时,我得到一个“列列表中的重复列名:x”,其中x是第一列 数据库表没有重复的列,我能够正确地读取数据。该表确实包含一个复合主键,我正在映射文件中处理该主键,如下所示: <composite-id> <key-property name="x"></key-property> <key-property name="y"&g

使用hibernate和Hsqldb-通过事务合并对象列表。调用session.flush()时,我得到一个“列列表中的重复列名:x”,其中x是第一列

数据库表没有重复的列,我能够正确地读取数据。该表确实包含一个复合主键,我正在映射文件中处理该主键,如下所示:

    <composite-id>
        <key-property name="x"></key-property>
        <key-property name="y"></key-property>
    </composite-id>
    <property name="x" type="string" unique="false"
        optimistic-lock="true" lazy="false" generated="never">
        <column name="X" length="10" not-null="true" unique="false" />
    </property>
    <property name="y" type="string" unique="false"
        optimistic-lock="true" lazy="false" generated="never">
        <column name="Y" length="18" not-null="true"
            unique="false" />
    </property>


谢谢

您正在映射X&Y两次。如果您说它是一个复合ID,则无需将其重新映射为属性

<composite-id>
    <key-property name="x"></key-property>
    <key-property name="y"></key-property>
</composite-id>


我认为是这样,但当我将属性映射中的其他信息输入到属性键映射中时,我得到了各种未定义的错误。我从应用程序继承了此映射文件。我尝试了从属性声明中删除其他属性的建议。现在我得到一个合并错误(在我刷新之前),它可能与使用下划线有关。属性和列名都是x_x,但是当合并第二个对象时,它显示“xx”已全部就绪合并为“null”。我希望在错误消息中看到x_x。您可以发布映射和表架构吗?谢谢。删除了附加映射-然后为了使其工作,在复合id中添加了以下内容: