
第六章
Hibernate 的关联映射

回顾
下面这个异常是怎么回事?该怎么解决?
org.hibernate.MappingException: Unknown entity:
com.aptech.jb.entity.TblUser
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister
(SessionFactoryImpl.java:514)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad
(DefaultLoadEventListener.java:66)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:799)
at com.aptech.jb.dao.hibimpl.TblUserDAO.findById(TblUserDAO.java:52)
at com.aptech.jb.Test.main(Test.java:13)
没有在 Hibernate.cfg.xml 加
<mapping resource="com/aptech/jb/entity/TblUser.hbm.xml" />

回顾
•
下面代码有哪些错误?
Transaction tx = null;
Session session = HibernateSessionFactory.getSession();
try {
tx = session.beginTransaction();
session.open();
session.insert(item);
session.close();
tx.commit();
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
}
没有 session.open() 方法
session.save(item);
应该是 session.save(item);
应该先提交事务,再关闭
session
关闭 session 应在 finally 块
中进行

预习检查
1 、举一个一对多关联的例子
2 、举一个多对一关联的例子
3 、举一个多对多关联的例子
4 、使用 Hibernate 配置关联有什
么好处?

本章任务
使用 Hibernate 实现:
配置 Hibernate 关联自动加载区县对应的街道
配置 Hibernate 关联并实现:
1 、增加一个区县:“山南区”
2 、增加山南区下属的三个街道
3 、删除“五四大道”
4 、划“和平路”到海淀区
5 、删除山南区
–
配置 Hibernate 多对多关联,实现某 OA 系统项
目和人员对照关系的管理