您的位置:首页 > 其它

Hibernate学习4—关联关系一对多映射2

2017-07-27 00:38 417 查看
第四节:班级学生一对多映射实现(双向)                                
查询班级的时候能够获取所有的学生;

在上一节的基础之上;我们在Class端也保存学生的关系;
com.cy.model.Class:

public class Class {
private long id;
private String name;
private Set<Student> students = new HashSet<Student>();

public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
}


Class.hbm.xml:

<hibernate-mapping package="com.cy.model">
<class name="Class" table="t_class">
<id name="id" column="classId">
<generator class="identity"></generator>
</id>
<property name="name" column="className"></property>
<set name="students" cascade="save-update">
<!-- key外键,column是对应Student表的外键classId
就是many-to-one中的column;
-->
<key column="classId"></key>
<!-- class就是students属性,对应的集合中装的类Student -->
<one-to-many class="com.cy.model.Student"/>
</set>
</class>
</hibernate-mapping>


com.cy.model.Student还和之前一样:

package com.cy.service;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.cy.model.Node;
import com.cy.util.HibernateUtil;

public class NodeTest {
private SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
private Session session;

@Before
public void setUp() throws Exception {
session = sessionFactory.openSession();
session.beginTransaction();
}

@After
public void tearDown() throws Exception {
session.getTransaction().commit();
session.close();
}

@Test
public void testSaveMenu() {
Node node=new Node();
node.setName("根节点");

Node subNode1=new Node();
subNode1.setName("子节点1");

Node subNode2=new Node();
subNode2.setName("子节点2");

subNode1.setParentNode(node);
subNode2.setParentNode(node);

session.save(subNode1);
session.save(subNode2);
}
}


View Code
结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: