java - hibernate 映射: creating FK relation in existing db for join operations

标签 java mysql hibernate

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

还有我的类(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

我得到的最新错误是:表 CATEGORYLINKS 中的关联引用了未映射的类:java.lang.Long

最佳答案

应该有助于以下代码:

public class CategoryItems implements Serializable  
{
  private static final long serialVersionUID = 1L;
  private Words id;
  private String text;

  //getters-setters
}

关于java - hibernate 映射: creating FK relation in existing db for join operations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20349689/

相关文章:

java - 由于 Cassandra 没有事务并且所有语句都是原子的,因此如果需要,如何模拟回滚?

mysql - 使用键列的 where 子句仍然出错

mysql - 在mysql中分割文本数据

java - 使用 Hibernate 备份和恢复数据库

hibernate - 简单的 Hibernate aliasToBean() 不起作用

java - 从一个 Websphere 实例导出到另一个 Websphere 实例的 EAR 无法启动

java - 为什么不 catch 打印?

java - Opensaml key 信息配置

php - 代码点火器, mysql

java - 使用 JPA Hibernate 自动保存子对象