Hibernate映射:在现有数据库中创建FK关系以进行联接操作



我有一个无法更改的现有数据库。有两个表,一个(A)带有PK,另一个(B)带有指向第一个PK的FK。相应的列被命名为(A).page_id和(B).cl_from。在Hibernate映射中,我可以为第一个设置一个id,映射PK。我还可以为一对多关系设置一个包。第二,我不需要身份证,而是一种多对一的关系。你怎么能在没有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

应该有助于以下代码:

public class CategoryItems implements Serializable  
{
  private static final long serialVersionUID = 1L;
  private Words id;
  private String text;
  //getters-setters
}

最新更新