我有一个无法更改的现有数据库。有两个表,一个 (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/