首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> 开源技术 >> Hibernate >> 正文

开源技术:hibernate点滴

这几天在学习hibernate,把一些碰到的问题给写下来,以后避免犯重复的问题:
1,在进行Query类操作的时候session需在最后关闭;
例如:
try {
   Query query = session.createQuery(sql);
    list = query.list();
   tx.commit();   
  } catch (HibernateException e) {
   e.printStackTrace();
  }
。。对list操作的一些代码。。
session.close();
 
经常看到网上会这样写:
try {
   Query query = session.createQuery(sql);
    list = query.list();
   tx.commit();   
   session.close()
  } catch (HibernateException e) {
   e.printStackTrace();
  }
结果他没有对list进行过多的操作,可能是我理解的角度有问题,然后我也用了网上的例子,然后对list进行操作,结果在对list进行操作的时候会忽然中断掉,原来是session的问题,只要把session.close()放到list操作代码后面,就不会出现中断的问题。
2.几个高度概括的操作:
public boolean update(Object o){
  try{
   session.update(o);
   tx.commit();
   session.close();
  }catch(HibernateException e){
   e.printStackTrace();
   return false;
  }
  return true;
 }
 
 public boolean delete(Object o){
  try{
   session.delete(o);
   tx.commit();
   session.close();
  }catch(HibernateException e){
   e.printStackTrace();
   return false;
  }
  return true;
 }
直接对session进行操作,可能会产生问题。。目前还没有学习事务处理,先搁着吧。
3,一对一关联操作:
一对一关系有两种形式,一种是共享主键方式,另一种是惟一外键方式,最常用的我想应该是唯一外键方式了吧
简单例子,
表一 employee(id,name,deptId)(deptId是外键)
表二 dept(id,name)
我们需要对employee对应的hbm文件进行修改:
把原来的
<property name="deptId" column="deptId" />
改成
<many-to-one name="dept" class="hib.bo.Dept" column="deptId" unique="true"/>
然后在po里面也要进行修改:
把deptId属性改成dept对象,这样就可以了。
然后如果要查询员工号为1的部门名称,那么我们就可以通过employee.getDept().getName()进行查询,
如下是查询所有的员工信息:
sql = "from Employee employee"; 
  try {
   Query query = session.createQuery(sql);
   list = query.list();
   tx.commit();   
  } catch (HibernateException e) {
   e.printStackTrace();
  }
如果要查询相对应的员工号的员工,那么我们可以通过employee.getDept().getName()进行查询。
【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航