日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hibernate中many-to-one实例一

發(fā)布時間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate中many-to-one实例一 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

可以發(fā)現(xiàn),添加一個教師的同時指定一個學(xué)生,這種方式相當(dāng)糟糕,合理的方式應(yīng)該是在添加學(xué)生的時候指定教師。即在學(xué)生類里指

定教師對象,配置文件里配置成many-to-one。

單純只使用many-to-one:
在Student類里加入Teacher teacher屬性。
注釋掉teacher.hbm.xml里的<set ...></set>內(nèi)容
在student.hbm.xml里入many-to-one屬性:

[c-sharp]?view plaincopyprint?
  • <?xml?version="1.0"?>??
  • <!DOCTYPE?hibernate-mapping?PUBLIC??
  • ????????"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"??
  • ????????"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">??
  • <hibernate-mapping?package="com.sjtu.xw.pojo2">??
  • ????<class?name="Student"?table="student">??
  • ????????<id?name="id"?column="id">??
  • ????????????<generator?class="native"></generator>??
  • ????????</id>??
  • ????????<property?name="stuName"?column="studentName"?length="30"?/>??
  • ????????<many-to-one?name="teacher"?column="teacherId"?class="Teacher"??
  • ????????????fetch="join"?lazy="false"?/>??
  • ????????<!--??
  • ????????????這里的column="teacherId"是指明了自身(student表)表里的teacherId屬性,指向teacher表的外鍵??
  • ????????-->??
  • ????</class>??
  • </hibernate-mapping>??
  • ?

    做完上述工作即可進行測試了:

    Test2.java

    [c-sharp]?view plaincopyprint?
  • package?com.sjtu.xw.test;??
  • import?java.util.List;??
  • import?org.hibernate.Session;??
  • import?org.hibernate.SessionFactory;??
  • import?org.hibernate.Transaction;??
  • import?com.sjtu.xw.pojo2.Student;??
  • import?com.sjtu.xw.pojo2.Teacher;??
  • import?com.sjtu.xw.util.HibernateUtil;??
  • public?class?Test2?{??
  • ????public?static?void?main(String[]?args)?{??
  • ????????Test2?test?=?new?Test2();??
  • ????????//?test.addStudent();//通過??
  • ????????//test.addTeacher();//通過??
  • ????????test.test();??
  • ????}??
  • ????public?void?addStudent()?{??
  • ????????Teacher?teacher?=?new?Teacher();??
  • ????????teacher.setId(1);??
  • ????????Student?student?=?new?Student();??
  • ????????student.setStuName("student8");??
  • ????????student.setTeacher(teacher);??
  • ????????SessionFactory?sf?=?HibernateUtil.getSessionFactory();??
  • ????????Session?session?=?sf.openSession();??
  • ????????Transaction?tx?=?session.beginTransaction();??
  • ????????session.save(student);??
  • ????????tx.commit();??
  • ????????session.close();??
  • ????????sf.close();??
  • ????}??
  • ????public?void?addTeacher()?{??
  • ????????Teacher?teacher?=?new?Teacher();??
  • ????????teacher.setTeaName("Teacher5");??
  • ????????SessionFactory?sf?=?HibernateUtil.getSessionFactory();??
  • ????????Session?session?=?sf.openSession();??
  • ????????Transaction?tx?=?session.beginTransaction();??
  • ????????session.save(teacher);??
  • ????????tx.commit();??
  • ????????session.close();??
  • ????????sf.close();??
  • ????}??
  • ????public?void?test()?{??
  • ????????SessionFactory?sf?=?HibernateUtil.getSessionFactory();??
  • ????????Session?session?=?sf.openSession();??
  • ????????Transaction?tx?=?session.beginTransaction();??
  • ????????List?list?=?session.createQuery("from?Student?s?where?s.id=1").list();??
  • ????????Student?s?=?(Student)?list.get(0);//找student的id為1的學(xué)生,并獲取老師的信息。??
  • ????//??System.out.println(s);??
  • ????????System.out.println(s.getTeacher());??
  • ????????System.out.println(s.getTeacher().getTeaName());??
  • ????????tx.commit();??
  • ????????session.close();??
  • ????????sf.close();??
  • ????}??
  • } ?





  • 本文轉(zhuǎn)自xwdreamer博客園博客,原文鏈接:http://www.cnblogs.com/xwdreamer/archive/2010/12/01/2297065.html,如需轉(zhuǎn)載請自行聯(lián)系原作者

    總結(jié)

    以上是生活随笔為你收集整理的hibernate中many-to-one实例一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。