【问题标题】:Repeated column in mapping for entity, oneToMany relationship实体映射中的重复列,oneToMany 关系
【发布时间】:2016-01-05 20:39:38
【问题描述】:

我正在尝试在两个表之间建立一对多的关系。我有一个名为 users 的表,其中包含许多 user_history 条目。我在 mysql 中定义了这些表,并生成了具有 intellij hibrernate 支持的实体。问题是,当我想在数据库中插入一些东西时,我收到以下错误 Repeated column in mapping for entity: com.UserHistoryEntity

用户:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.UsersEntity" table="users" schema="" catalog="protein_tracker">
        <id name="id">
            <column name="id" sql-type="int" not-null="true"/>
        </id>
        <property name="name">
            <column name="name" sql-type="varchar" length="45" not-null="true"/>
        </property>
        <property name="total">
            <column name="total" sql-type="int" not-null="true"/>
        </property>
        <property name="goal">
            <column name="goal" sql-type="int" not-null="true"/>
        </property>
        <set name="userHistoriesById" inverse="true">
            <key>
                <column name="id_user" not-null="true"/>
            </key>
            <one-to-many not-found="ignore" class="com.UserHistoryEntity"/>
        </set>
    </class>
</hibernate-mapping>

用户历史:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

    <class name="com.UserHistoryEntity" table="user_history" schema="" catalog="protein_tracker">
        <id name="id">
            <column name="id" sql-type="int" not-null="true"/>
        </id>
        <property name="entryDate">
            <column name="entry_date" sql-type="datetime" not-null="true"/>
        </property>
        <property name="entry">
            <column name="entry" sql-type="varchar" length="45" not-null="true"/>
        </property>
        <property name="idUser">
            <column name="id_user" sql-type="int" not-null="true"/>
        </property>
        <many-to-one name="usersByIdUser" class="com.UsersEntity">
            <column name="id_user" not-null="true"/>
        </many-to-one>
    </class>
</hibernate-mapping>

我该如何解决这个问题?

【问题讨论】:

    标签: java mysql hibernate intellij-idea


    【解决方案1】:

    将 usersByIdUser 的 Many-To-One 映射标记为 insertable = false 和 updatable = false。这允许该关系仅由您已映射的单个属性 idUser 管理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-08
      • 2019-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2013-11-20
      相关资源
      最近更新 更多