2010-10-12 55 views
0

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

数据库表没有重复的列,我可以读取数据。该表确实包含这是我在映射文件处理我作为一个复合主键:

<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> 

感谢

回答

0

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

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

我认为,但是当我在属性映射中输入其他信息到属性键映射时,我得到了各种未定义的错误。我从应用程序继承了这个映射文件。 – Trevor 2010-10-12 18:51:21

+0

我尝试了从属性声明中删除其他属性的建议。现在我得到一个合并错误(在我刷新之前),这可能与使用下划线有关。属性和列名都是x_x,但是当第二个对象被合并时,它显示“xx”已被合并为“null”。我希望在错误信息中看到x_x。 – Trevor 2010-10-12 19:31:02

+0

你可以发布映射和表模式吗?谢谢。 – Pedro 2010-10-12 19:32:43