- 浏览: 153071 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
fddjxllren:
session.find()是不支持动态绑定参数的.要使用it ...
Hibernate查询之list/iterator -
xiaofeiyang:
http://svn.apache.org/repos/asf ...
struts,hibernate,spring 版本控制svn的URL地址 -
peterxiemin:
emp在建立的时候,报无效的月份,为什么 ?
oracle的练习表---employee -
java_bigniu:
...
Hibernate查询之list/iterator -
lanhai921:
学习下,谢谢分享。
itext基本用法
Hibernate多对多关联可以分成单向和双向,多对多关系会借助中间表来保存映射信息,所以一般少用;
- 单向
实例:学生可以在多个学校就读过,多个学校也会有多个学生;
TStudent:
public class TStudent implements java.io.Serializable { private static final long serialVersionUID = 1L; private Integer stuId; private String name; private Set<TSchool> tschool; get()/set()
TStudent.hbm.xml:
<hibernate-mapping package="com.keith.many2many"> <class name="TStudent" table="TStudent"> <id name="stuId"> <generator class="native"/> </id> <property name="name" /> <set name="tschool" table="stu_school_link" cascade="all"> <key column="stuId"/> <many-to-many class="TSchool" column="schoolId"/> </set> </class> </hibernate-mapping>
TSchool:
public class TSchool implements java.io.Serializable { private static final long serialVersionUID = 1L; private Integer schoolId; private String name; get()/set() }
TSchool.hbm.xml:
<hibernate-mapping package="com.keith.many2many"> <class name="TSchool" table="TSchool"> <id name="schoolId"> <generator class="native"/> </id> <property name="name" /> </class> </hibernate-mapping>
测试:
//添加数据 Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); TStudent student = new TStudent(); student.setName("柯"); Set<TSchool> schools = new HashSet<TSchool>(); TSchool school = new TSchool(); school.setName("小学"); TSchool school1 = new TSchool(); school1.setName("中学"); TSchool school2 = new TSchool(); school2.setName("大学"); schools.add(school); schools.add(school1); schools.add(school2); student.setTschool(schools); session.save(student); session.getTransaction().commit(); //查询数据 TStudent stu = (TStudent) session.load(TStudent.class, 1); System.out.println("student's Name:" + stu.getName()); Iterator<TSchool> it = stu.getTschool().iterator(); TSchool school = null; while (it.hasNext()) { school = it.next(); System.out.println("student's school Name"+school.getName()); }
- 双向,在TSchool一方加入TStudent对象;
TSchool:
public class TSchool implements java.io.Serializable { private static final long serialVersionUID = 1L; private Integer schoolId; private String name; private Set<TStudent> stus = new HashSet(); get()/set() }
TSchool.hbm.xml:
<hibernate-mapping package="com.keith.many2many.doubleSide"> <class name="TSchool" table="TSchool"> <id name="schoolId"> <generator class="native"/> </id> <property name="name" /> <set name="stus" table="stu_school_link" cascade="save-update"> <key column="schoolId"/> <many-to-many column="stuId" class="TStudent"/> </set> </class> </hibernate-mapping>
TStudent:
public class TStudent implements java.io.Serializable { private static final long serialVersionUID = 1L; private Integer stuId; private String name; private Set<TSchool> tschool; get()/set(); }
TStudent.hbm.xml:
<hibernate-mapping package="com.keith.many2many.doubleSide"> <class name="TStudent" table="TStudent"> <id name="stuId"> <generator class="native"/> </id> <property name="name" /> <set name="tschool" table="stu_school_link" cascade="save-update"> <!-- "stuId":连接表中关联当前实体类的列名 --> <key column="stuId"/> <!-- "schoolId":是连接表中关联本实体类的外键 --> <many-to-many class="TSchool" column="schoolId"/> </set> </class> </hibernate-mapping>
附上测试类;
发表评论
-
Hibernate之分页
2011-01-09 17:30 898在Hibernate中,通过对不同数据库的统一接口设计,实现了 ... -
hibernate之结果集排序
2011-01-09 17:07 1336无序集和有序集,是针对hibernate数据持久过程中,是否保 ... -
hibernate之Collection类型
2011-01-09 16:42 1438Collection类型: ... -
Hibernate之海量数据操作
2011-01-09 09:59 1061批量添加 在实 ... -
hibernate之数据存储
2011-01-07 16:33 7081,session.save(); 方法用于实体对象到数 ... -
hibernate之延迟加载(Lazy Loading)
2011-01-07 15:43 1189避免在某些情况下,关 ... -
Hibernate查询之list/iterator
2011-01-07 14:13 6351在Hibernate3中将Session.find(),Ses ... -
Hibernate之查询缓存(The Query Cache)
2011-01-07 09:21 1028查询的结果集也可以被缓存。只有当经常使用同样的参数进行查询时, ... -
hibernate之数据加载---Session.get/load
2011-01-06 16:54 990Session.get/load() 都是根 ... -
hibernate之乐观锁(Optimistic Locking)
2011-01-06 16:34 1662相对于悲观锁,乐观锁采取了更加宽松的加锁机制,悲观锁大多数是依 ... -
Hibenate之悲观锁(Pessimistic Locking)
2011-01-06 15:34 1368什么是“锁”? 业务逻辑的实现过程中,往往需要保证数据的排他 ... -
Hibernate之事务管理
2011-01-06 15:00 810Hibernate是JDBC的轻量级封装,本身不具备事务管理能 ... -
初识---事务管理
2011-01-06 14:28 796何为“ 事务管理 ”? ... -
Hibernate之缓存同步策略
2011-01-06 13:43 1303缓存同步决定了数据对 ... -
Hibernate之数据缓存
2011-01-06 11:22 1092Hibernate数据缓存(cache ... -
认识数据缓存
2011-01-06 10:36 945数据缓存概述:在特定硬件基础上,缓存(Cache)往往是提升系 ... -
hibernate之脏数据检查
2011-01-06 09:54 2332HIbernate中有个名词---脏数据(dirty Data ... -
hibernate之实体对象生命周期
2011-01-06 09:16 989在Hibernate的应用中,实体对象的生命周期,是一个关键的 ... -
Hibernate之数据加载方式
2011-01-05 23:09 1119Hibernate 的数据加载方式: 在JDBC的操作中,利 ... -
Hibernate之一对多关联
2010-12-31 10:06 1375一对多关联分单向一对多关系 和双向一对多关系 ; 单向 ...
相关推荐
hibenrate的代码本人的培训的代码,老师讲解的很好。是一个学习hibenrate的好的工具
3. Spring:Spring框架是Java企业级应用的核心框架,它覆盖了从依赖注入到事务管理、安全控制等多个方面。在持久层,Spring提供了JDBC抽象层和对ORM框架(如Hibernate)的支持。在服务层,Spring的IOC(Inversion of...
Hibernate 是一个基于 Java 的 ORM 框架,它提供了对数据库的操作接口。在实际开发中,我们经常需要更新数据库中的某些字段,而不是所有字段。那么,如何使用 Hibernate 实现更新某些字段呢? 首先,我们需要了解 ...
数据库和配置MySQL 飞路(用于数据迁移) GradleTomcat吉特Google Book API 后端技术JavaSpring MVC,Spring AOP,Spring Security Hibernate ORM,Hibernate Validator,Hibenrate Search(Lucene) 翻新,JSON ...
hibernahibernate学习资料te学习资料hibernate学习资料v
公交车查询系统是一款基于Java...总的来说,公交车查询系统是一个综合运用了Java、Spring、Hibernate和Web技术的项目,它通过高效的数据处理和友好的用户界面,实现了对公共交通信息的快速查询,为公众出行提供了便利。