Hibernate中onetomany实例一
2011-05-25 23:40
323 查看
1:第一个实例
class类:
public class Classes {
private int id;
private String name;
private Set<Student> students;
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
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;
}
}
Classes.hbm.xml的内容为:
<hibernate-mapping package="com.bjsxt.hibernate">
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
<set name="students">
<key column="classid"/>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>
类Student:
public class Student {
private int id;
private String name;
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;
}
}
Student.hbm.xml的内容为:
<hibernate-mapping >
<class name="com.bjsxt.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
</class>
</hibernate-mapping>
测试程序为:
public void testSave1(){ //测试保存的程序
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
Student student1 = new Student(); //声明一个Student 对象
student1.setName("10");
session.save(student1);
Student student2 = new Student(); //再声明一个Student对象
student2.setName("11");
session.save(student2);
Set students = new HashSet();
students.add(student1);
students.add(student2);
Classes classes = new Classes();
classes.setName("尚学堂");
classes.setStudents(students);
//可以正确保存
session.save(classes);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
public void testLoad1(){ //测试加载的程序
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
Classes classes = (Classes)session.load(Classes.class,4);
System.out.println("classes.name="+classes.getName());
Set<Student> students = classes.getStudents();
for(Iterator iter = (Iterator) students.iterator();iter.hasNext();){
Student student = (Student)iter.next();
System.out.println("student.name="+student.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
class类:
public class Classes {
private int id;
private String name;
private Set<Student> students;
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
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;
}
}
Classes.hbm.xml的内容为:
<hibernate-mapping package="com.bjsxt.hibernate">
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
<set name="students">
<key column="classid"/>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>
类Student:
public class Student {
private int id;
private String name;
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;
}
}
Student.hbm.xml的内容为:
<hibernate-mapping >
<class name="com.bjsxt.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"></property>
</class>
</hibernate-mapping>
测试程序为:
public void testSave1(){ //测试保存的程序
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
Student student1 = new Student(); //声明一个Student 对象
student1.setName("10");
session.save(student1);
Student student2 = new Student(); //再声明一个Student对象
student2.setName("11");
session.save(student2);
Set students = new HashSet();
students.add(student1);
students.add(student2);
Classes classes = new Classes();
classes.setName("尚学堂");
classes.setStudents(students);
//可以正确保存
session.save(classes);
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
public void testLoad1(){ //测试加载的程序
Session session = null;
try{
session = HibernateUtils.getSession();
session.beginTransaction();
Classes classes = (Classes)session.load(Classes.class,4);
System.out.println("classes.name="+classes.getName());
Set<Student> students = classes.getStudents();
for(Iterator iter = (Iterator) students.iterator();iter.hasNext();){
Student student = (Student)iter.next();
System.out.println("student.name="+student.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
相关文章推荐
- hibernate中many-to-one实例一
- hibernate的one-to-many和many-to-one实例
- hibernate中many-to-one实例一
- Hibernate多对一实例【xml和注解】many-to-one(十六)
- Hibernate实体关系映射(OneToMany、ManyToOne双边)——完整实例
- hibernate的one-to-many实例
- Hibernate实体关系映射(OneToMany单边)——完整实例
- hibernate中一对多(one-to-many)的实例
- hibernate中one-to-many实例一
- Hibernate学习篇06——onetomany简单实例
- hibernate中one-to-many实例一
- hibernate映射技巧one-to-many(单项一对多)
- [Hibernate] - one to many
- 为什么Hibernate的OneToMany用Set集合而不用list
- 升级Hibernate3.5:javax.persistence.OneToMany.orphanRemoval()Z
- hibernate映射文件set key one-to-many
- [Hibernate] - Annotations - One To Many
- Hibernate 、多表关联映射-多对一关系(many-to-one)
- Java EE 之Hibernate初步接触 one-to-many
- hibernate的one-to-many