首页 > 代码库 > 【7.0】单向多对一的关联映射
【7.0】单向多对一的关联映射
1.学生表student 和年级表 grade
2.类Student 和Grade类
public class Student { private int id; private String name; private int age; private Grade grade; //get…set }
public class Grade { private int id; private String name; //get…set }
3.映射文件
Grade.hbm.xml:
<hibernate-mapping package="cn.siggy.pojo"> <class name="Grade"> <id name="id"> <generator class="native"></generator> </id> <property name="name"/> </class> </hibernate-mapping>
Student.hbm.xml:
<hibernate-mapping package="cn.siggy.pojo"> <class name="Student"> <id name="id"> <generator class="native"></generator> </id> <property name="name"/> <property name="age"/> <!-- 多对一 name 表示属性名 class 指明 属性对应的类 column指 数据库表中的列名 --> <many-to-one name="grade" class="Grade" column="grade_id" foreign-key="fk_grade" not-null="true"/> </class> </hibernate-mapping>
4.测试代码
@Test public void testSave() throws HibernateException, SerialException, SQLException{ Session session = null; Transaction tx = null; try{ session = HibernateUtil.getSession(); tx = session.beginTransaction(); Grade grade = new Grade(); grade.setName("基础"); session.save(grade); Student stu = new Student(); stu.setName("张三疯"); stu.setAge(22); stu.setGrade(grade); session.save(stu); tx.commit(); }catch (HibernateException e) { if(tx!=null) tx.rollback(); e.printStackTrace(); throw e; }finally{ HibernateUtil.closeSession(); } }
5.测试结果
控制台信息:
数据库表信息:
【7.0】单向多对一的关联映射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。