Java Hibernate Mapping File not working

ⅰ亾dé卋堺 提交于 2020-03-27 07:03:03

问题


The error I get is " org.hibernate.MappingException: Repeated column in mapping for entity: cdd.model.Answer column: answer_id (should be mapped with insert="false" update="false") ". However when I put those as attributes I get the error: "Attribute "insert" must be declared for element type "id"."

Any help would be appreciated.

Class:

public class Answer {
UUID answerID;
String content;

//constructors and getters and setters

}

Table:

    CREATE TABLE IF NOT EXISTS answer (

    answer_id uuid NOT NULL ,
    content text NOT NULL,
    primary key(answer_id)
    );

Hibernate Mapping File:

<!-->==== Answer ====<!-->
<class name="cdd.model.Answer" table="answer" >
<id column="answer_id" name="answerID" 
    type="org.hibernate.type.PostgresUUIDType"  
    insert="false" update="false">
  <generator class="org.hibernate.id.UUIDGenerator"/>
</id>

<property column="content" name="content" type="org.hibernate.type.TextType"/>
</class>

Note I have a Question class where a question has a set of answers. This is the mapping I used. I am posting it because the error I'm gettng may be because of how I mapped this one-to-many relationship (I'm not sure).

<!-- ==== Question ==== -->
<class name="cdd.model.Question" table="question">
<id column="question_id" name="questionID" type="org.hibernate.type.PostgresUUIDType">
  <   generator class="org.hibernate.id.UUIDGenerator"/>
</id>
<many-to-one column="submitted_by" name="submittedBy" not-null="true"/>
<many-to-one column="parentCategory" name="parentCategory" not-null="true"/>

<property column="title" name="title" type="org.hibernate.type.TextType"/>
<property column="correct_answer" name="correctAnswer" type="org.hibernate.type.TextType"/>
<property column="date_submitted" name="dateSubmitted" type="org.hibernate.type.TimestampType"/>

<set cascade="all" name="answers" table="answer">
  <key column="answer_id" not-null="true"/>
  <one-to-many class="cdd.model.Answer"/>
</set>

<join inverse="true" optional="true" table="category_questions">
  <key column="question_id"/>
</join>
<join inverse="true" optional="true" table="accepted_questions_by_user">
  <key column="question_id"/>
</join>
</class>

回答1:


Question Entity:

<id column="question_id" name="questionID" type="org.hibernate.type.PostgresUUIDType">
  <generator class="org.hibernate.id.UUIDGenerator"/>
</id>

Answer Entity:

<id column="answer_id" name="answerID" type="org.hibernate.type.PostgresUUIDType"  
    insert="false" update="false">
  <generator class="org.hibernate.id.UUIDGenerator"/>
</id>

remove insert="false" update="false" from Answr entity

should look someting like this

<id column="answer_id" name="answerID" type="org.hibernate.type.PostgresUUIDType" >
  <generator class="org.hibernate.id.UUIDGenerator"/>
</id>

update, insert (optional - defaults to true): specifies that the mapped columns should be included in SQL UPDATE and/or INSERT statements. Setting both to false allows a pure "derived" property whose value is initialized from some other property that maps to the same column(s), or by a trigger or other application.



来源:https://stackoverflow.com/questions/44097647/java-hibernate-mapping-file-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!