hibernate中方建立表之间的关系
2015-12-20 15:34
323 查看
在hibernate中表之间存在一对一,一对多等关系,怎样配置这些属性的,下面来介绍一下这些知识
一对多关系:比如一个班级对用多个学生
班级实体类:
package entity;
import java.util.Set;
public class Clazz {
//实现1对多一个班级对应多个学生
private int id;
private String name;
private entity.Student Student=new Student();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public entity.Student getStudent() {
return Student;
}
public void setStudent(entity.Student student) {
Student = student;
}
}
学生实体类:
package entity;
public class Student {
private int id;
private String name;
private float score;
private Clazz clazz;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public Clazz getClazz() {
return clazz;
}
public void setClazz(Clazz clazz) {
this.clazz = clazz;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
}
班级对应的配置
<hibernate-mapping>
<class name="entity.Clazz" table="clazz">
<id name="id">
<generator class="native" />
</id>
<property name="name" column="clazz_name" type="string"/>
<set name="student" inverse="true">
<key>
<column name="cid"/>
</key>
<one-to-many class="entity.Student"/>
</set>
</class>
</hibernate-mapping>
学生对应的配置:
<hibernate-mapping>
<class name="entity.Student" table="student">
<id name="id">
<generator class="native" />
</id>
<property name="name" column="user_name" type="string"/>
<property name="score" column="user_score" type="float"/>
<many-to-one name="clazz" class="entity.Clazz" cascade="all">
<column name="cid"/>
</many-to-one>
</class>
</hibernate-mapping>
需要注意的是再班级和学生配置过程中属性的name要与实体之间对应。
一对多关系:比如一个班级对用多个学生
班级实体类:
package entity;
import java.util.Set;
public class Clazz {
//实现1对多一个班级对应多个学生
private int id;
private String name;
private entity.Student Student=new Student();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public entity.Student getStudent() {
return Student;
}
public void setStudent(entity.Student student) {
Student = student;
}
}
学生实体类:
package entity;
public class Student {
private int id;
private String name;
private float score;
private Clazz clazz;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public Clazz getClazz() {
return clazz;
}
public void setClazz(Clazz clazz) {
this.clazz = clazz;
}
public void setName(String name) {
this.name = name;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
}
班级对应的配置
<hibernate-mapping>
<class name="entity.Clazz" table="clazz">
<id name="id">
<generator class="native" />
</id>
<property name="name" column="clazz_name" type="string"/>
<set name="student" inverse="true">
<key>
<column name="cid"/>
</key>
<one-to-many class="entity.Student"/>
</set>
</class>
</hibernate-mapping>
学生对应的配置:
<hibernate-mapping>
<class name="entity.Student" table="student">
<id name="id">
<generator class="native" />
</id>
<property name="name" column="user_name" type="string"/>
<property name="score" column="user_score" type="float"/>
<many-to-one name="clazz" class="entity.Clazz" cascade="all">
<column name="cid"/>
</many-to-one>
</class>
</hibernate-mapping>
需要注意的是再班级和学生配置过程中属性的name要与实体之间对应。
相关文章推荐
- Intent传递值,接收返回值
- debian安装nginx-1.9.9和php-7.0.1
- RSA公钥/私钥签名
- RegisterStartupScript的使用方法
- OC和Swift中循环引用的问题
- HDOJ 2391 Filthy Rich
- 阿里感悟(九)- 能力和晋升(转)
- 表单:
- # 图解TCP/IP读书笔记(五)
- php中实现伪静态网址
- 谷歌将要在搜索结果中优先展示HTTPS站点
- gsoap在ubuntu14.04上编译
- [leetcode] 77. Combinations 解题报告
- cocos2dx 动画 一
- How many prime numbers(求素数个数)
- 插件推荐:RTImageAssets 自动生成 AppIcon 和 @2x @1x 比例图片
- struct结构在声明时对其中的某一项进行初始化
- 阿里感悟(十四)-如何带新员工(转)
- HTML5拖放API(代码展示)
- WordPress菜单“显示选项”无法显示的解决办法