2016-01-05 2 views
0

Я пытаюсь сделать отношения «один ко многим» между двумя таблицами. У меня есть таблица, называемая пользователями, у которой есть много записей user_history. Я определил эти таблицы в mysql, и я создал объекты с поддержкой intellij hibrernate. Проблема заключается в том, что, когда я хочу, чтобы вставить что-то в Databse я получаю следующее сообщение об ошибке Повторные столбец отображения для объекта: com.UserHistoryEntityПовторяющийся столбец в сопоставлении для объекта, отношения oneToMany

Пользователь:

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

UserHistory:

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

Как исправить эту проблему?

ответ

0

Отметьте свое Many-To-One сопоставление для пользователейByIdUser для вставки = false и updatable = false. Это позволяет управлять отношениями только одним свойством, idUser, которое вы сопоставили.

Смежные вопросы

 Смежные вопросы