hibernate之单向一对多关系

本文介绍了Hibernate中单向一对多关系的实现方法,通过一个班级对应多个学生的例子,详细展示了Java实体类的设计、映射文件配置及测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hibernate中单向一对多关系:

   做留言板项目的发现自己hibernate种对表之间的关系有些陌生,之前一段时间,粗略的复习和se的东西以及数据结构的知识,想尽量让自己知道的东西更多一点,希望能在暑假可以找到一份实习的工作,让自己大四能彻底来一次接触社会。

   我学习过的hibernate中有单向一对多关联,单向多对一关联,以及多对多的关联。

   单向一对多,我理解是数据库中,一个实体包含多个其他实体,叫做一对多,比如一个班级对应多个学生,一个学校对应多个班级,其中班级和学校是一,学生和班级是多。

   Java代码的实现:

   domain包:Grande类,Student类。test包:Test类。

   首先建立班级实体类:

   包含gid,gname,gcourse,以及学生的集合Set<Student> student=new hashSet<Student>();

   

 private int id;
 private String name;
 private String coures;
 private Set<Student> st=new HashSet<Student>();
   添加get和set方法以及构造器。

   然后是映射文件Grade.hbm.xml:

   <hibernate-mapping>

<class name="domain.Grade" table="grade">

  <id name="" type="">

  <colum name="">

  <generator class="主键生成策略">

  </id>

  <property name="" colum="" type=""/>

  <property />

   ......

  <set name="student" table="student">

   <key colum="id">外键所对应的主键

<one-to-many class="domain.Student" />

</set>

</class>

   </hibernate-mapping>

  映射文件完成。

  省去学生的实体类以及映射文件

...............

  测试类:

   

public class Test {
public static void main(String[] args) {
	add();
}
public static void add(){
	Grade g=new Grade(1, "java", "企业级项目");
	Student s=new Student(1, "陈龙");
    //
	g.getSt().add(s);
	Session session=Service.getSession();Service是我写的session会话工程
	Transaction t=session.beginTransaction();
	session.save(g);
	session.save(s);
	t.commit();
	session.close();
}
}
    hibernate之单向一对多完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值