Hibernate将不同的表映射到一个POJO类
我需要在hibernate中将两个不同的表映射到一个POJO类。
我尝试使用join配置hibernate映射,但是我得到了像
这样的错误 DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704.
我的表格关系如图所示。
我的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
有人可以帮我解决这个映射问题吗?
答案 0 :(得分:0)
看到你的表格关系图。您的数据库设计是错误的。
一名学生可以报名参加1门以上的课程。 1道菜可以 包含超过1名学生。
所以基本上是多次映射。
以下是一些实现它的示例。
<强>更新强>
我以正确的方式即兴创作你的设计。但是如果你仍然坚持它的0ne-one映射,那么这里是similar question with answer。您将要求id精确,以便它只对应一个记录。请查看hibernate-doc相同的内容。
答案 1 :(得分:0)
您是否在hibernate映射中验证了所有列的名称是否正确?查看error code -204,它说“名称是一个未定义的名称。”