【发布时间】:2013-06-19 12:20:57
【问题描述】:
如何定义两个类之间的One-to-One 关系?从概念上讲,我认为我在某个地方出错了。我不知道是什么,但确实如此。
假设有两个类名为Country 和PM:
Country
int c_id
String name_c
PM
int c_id
String name_pm
现在对于一个国家,只能有一位 PM,并且 PM 只能属于一个国家。如何在我的映射文件中执行此操作?
我正在尝试这个:
<class name="pojo.Country" table="country">
<id name="c_id">
<generator class="increment" />
</id>
<property name="name_c" />
<one-to-one class="pojo.PM" name="name_pm" />
</class>
<class name="pojo.PM" table="pm">
<id name="c_id">
<generator class="increment" />
</id>
<property name="name_pm" />
</class>
但是这个有效的映射除了在运行时产生异常之外什么也没做。它说在Country 类中找不到属性name_pm!但它是否在 Country 类中搜索。它应该在 PM 类中搜索。
还帮助我完成我的one-to-one 两个类之间的映射。我已经尝试了一段时间。
Java 代码:
国家
public class Country {
private int c_id;
private String name_c;
public int getC_id() {
return c_id;
}
public void setC_id(int c_id) {
this.c_id = c_id;
}
public String getName_c() {
return name_c;
}
public void setName_c(String name_c) {
this.name_c = name_c;
}
}
下午
public class PM {
private int c_id;
private String name_pm;
public int getC_id() {
return c_id;
}
public void setC_id(int c_id) {
this.c_id = c_id;
}
public String getName_pm() {
return name_pm;
}
public void setName_pm(String name_pm) {
this.name_pm = name_pm;
}
}
【问题讨论】:
-
这不是一个有效的例子,因为一个国家不一定有总理。在一对一映射中,一个集合的每个元素都与另一个集合的唯一元素相关联。
标签: java hibernate jakarta-ee hibernate-mapping