我有一个我无法改变的现有数据库。有两个表,一个(A)带PK,一个带(B),FK指向第一个PK。各列分别命名为(A).page_id和(B).cl_from。 在Hibernate映射中,我可以为第一个设置id,映射PK。我也可以为一对多的关系设置一个包。 对于第二种,我不需要id,而是需要多对一的关系。如何在没有id的情况下设置多对一关系?我不想在类中插入一个id .. 我试图设置一个复合键,但没有运气..
// The PK class
<class name="Words" table="PAGE">
<id name="id" column="PAGE_ID" />
<property name="text" column="PAGE_TITLE" />
<bag cascade="all-delete-orphan" inverse="true" lazy="false" name="wordPages">
<key column="PAGE_ID"/>
<one-to-many class="CategoryItems"/>
</bag>
</class>
// The FK class
<class name="CategoryItems" table="CATEGORYLINKS" >
<composite-id>
<key-many-to-one name="id" column="CL_FROM" />
</composite-id>
<property name="text" column="CL_TO" />
</class>
我的班级:
public class Words {
private Long id;
private String text;
private ArrayList wordPages;
// getters - setters
public class CategoryItems implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
private String text;
//getters-setters
我得到的最新错误是:An association from the table CATEGORYLINKS refers to an unmapped class: java.lang.Long
答案 0 :(得分:1)
应该有助于以下代码:
public class CategoryItems implements Serializable
{
private static final long serialVersionUID = 1L;
private Words id;
private String text;
//getters-setters
}