hibernate一对一对应关系
2015-12-03 22:15
363 查看
1
首先我先建立三个表:Student(学生),Lab(实验室),Part(党)
Student:
Lab:
Part:
假如党员都是学生,因此在党员这个表中为了让每一个党员对应一个学生,我们在党员这个表中添加来学生的studentID,这样就可以让学生和党员一一对应起来.
Student类:
public class Student {
private int studentID;
private String studentName;
}
Part类:
Student配置文件:
Part配置文件:
经过测试我发现这样设置了外键关联,但是只实现来部分外键关联,即使我在配置文件当中加入来cascade=”all” 也没有什么作用。
首先我先建立三个表:Student(学生),Lab(实验室),Part(党)
Student:
Lab:
Part:
假如党员都是学生,因此在党员这个表中为了让每一个党员对应一个学生,我们在党员这个表中添加来学生的studentID,这样就可以让学生和党员一一对应起来.
Student类:
public class Student {
private int studentID;
private String studentName;
public int getStudentID() { return studentID; } public void setStudentID(int studentID) { this.studentID = studentID; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; }
}
Part类:
public class Part { private int partID; private Student student; public int getPartID() { return partID; } public void setPartID(int partID) { this.partID = partID; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } }
Student配置文件:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="model"> <class table="Student" name="Student"> <id name="studentID" column="studentID" type="int"> <generator class="increment"></generator> </id> <property name="studentName" column="studentName" type="string"></property> <one-to-one name="part" class="Part" property-ref="student" cascade="all"></one-to-one> </class> </hibernate-mapping>
Part配置文件:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="model"> <class table="Part" name="Part"> <id name="partID" column="partID" type="int"> <generator class="increment"></generator> </id> <many-to-one name="student" column="studentID" class="Student"></many-to-one> </class> </hibernate-mapping>
Configuration configuration=new Configuration(); configuration.configure("hibernate-cfg.xml"); SessionFactory sessionFactory=configuration.buildSessionFactory(); Session session=sessionFactory.openSession(); Transaction transaction=session.beginTransaction(); Student student=new Student(); student.setStudentName("student"); Part part=new Part(); part.setStudent(student); student.setPart(part); session.save(part); session.save(student); transaction.commit();
经过测试我发现这样设置了外键关联,但是只实现来部分外键关联,即使我在配置文件当中加入来cascade=”all” 也没有什么作用。
相关文章推荐
- jquery 生成表格,拆分,合并
- 有穷自动机
- 实验三 进程模拟调度
- Android 关于“NetworkOnMainThreadException”解决办法
- 【学习ios之路:UI系列】ios中常见的几种控件.(UISlider,UISwitch,UIStepper,UISegmentedControl)
- 优化mysql limit offset
- iOS UITextField实用实现手机账号344格式 —— HERO博客
- java总结
- hdoj2045(涂色+递归)
- 需求分析
- lijhtoj Integer Divisibility (简单同余数题)
- CentOS 6.x的安装过程及实现自动安装
- 我的开源项目:一种TLV编解码器的实现
- 我的开源项目:一种TLV编解码器的实现
- HDU 3681 Prison Break(BFS+二分+状态压缩DP)
- 慧都控件网 2015-05-26 05:02:00 阅读(6098) 评论(0) 在上一篇程序员最喜爱的12个Android应用开发框架(一)中,我们为大家介绍了前6个Android应用开发框
- C#上位机之多编辑框输出
- Debug Assertion Failed!
- 一款C++静态分析工具 —— CppDepend
- Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;