Hibernate将不同的表映射到一个POJO类

时间:2014-02-21 05:29:13

标签: hibernate db2 hibernate-mapping

Hibernate将不同的表映射到一个POJO类

我需要在hibernate中将两个不同的表映射到一个POJO类。

我尝试使用join配置hibernate映射,但是我得到了像

这样的错误

DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704.

我的表格关系如图所示。

enter image description here

我的hibernate映射如下。

<hibernate-mapping>
    <class name="com.mydomain.Student" table="STUDENT_TABLE" schema="UNIV">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>

        <property name="studentId" type="java.lang.Integer">
            <column name="STUDENT_ID" />
        </property>

        <property name="course" type="java.lang.Integer">
            <column name="COURSE_ID" />
        </property>

        <join table="COURSE_TABLE"  >  
            <key column="COURSE_ID" />    
                <property name="courseName" type="string">
                  <column name="COURSE_NAM" />
                        </property>  

                        <property name="courseTeacher" type="string">
                    <column name="COURSE_Teacher" />
                         </property>            

        </join>

   </class>

</hibernate-mapping>

我的学生课程有吸气剂和制定者。

id
studentId
    course
courseName
courseTeacher

有人可以帮我解决这个映射问题吗?

2 个答案:

答案 0 :(得分:0)

看到你的表格关系图。您的数据库设计是错误的。

  

一名学生可以报名参加1门以上的课程。 1道菜可以   包含超过1名学生。

所以基本上是多次映射。

以下是一些实现它的示例。

Example1

Example2

<强>更新

我以正确的方式即兴创作你的设计。但是如果你仍然坚持它的0ne-one映射,那么这里是similar question with answer。您将要求id精确,以便它只对应一个记录。请查看hibernate-doc相同的内容。

答案 1 :(得分:0)

您是否在hibernate映射中验证了所有列的名称是否正确?查看error code -204,它说“名称是一个未定义的名称。”