您当前的位置: 首页 > 网站编程 > JSP教程 > 详细讲解Hibernate的配置文件

详细讲解Hibernate的配置文件

作者:guanchaofeng 来源:不详 发布时间: 2009-03-06 21:49 点击:
Hibernate的配置文件,默认的有2个:hibernate.properties,hibernate.cfg.xml,这二者,可选其一,也可以合并使用。如果存在对相同属性的定义,xml文件会覆盖properties文件的相关内容,“Hibernate In Action"上是这么说的。 这几天,碰到一个问题,那就是,

详细讲解Hibernate的配置文件

Hibernate的配置文件,默认的有2个:hibernate.properties,hibernate.cfg.xml,这二者,可选其一,也可以合并使用。如果存在对相同属性的定义,xml文件会覆盖properties文件的相关内容,“Hibernate In Action"上是这么说的。

这几天,碰到一个问题,那就是,本站有好几个webapp都开始使用Hibernate,如果bbs.war先发布没事,但是如果blog.war先发布,则bbs除了与blog公用的在线用户,其它什么都无法从数据库中读取。

看日志,知道是因为这种发布顺序,则bbs.war中的Forum.cfg.xml、Thread.cfg.xml之类,都没有起作用。为什么会这样呢?

原来这2个包都使用了hibernate.cfg.xml,并且在HibernateUtil中未使用其它的方式都显式地调用hibernate配置文件。

package token;
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
/* 方法一 */
// sessionFactory = new Configuration().configure().buildSessionFactory();
/* 方法二 */
/* sessionFactory = new Configuration()
.addClass(Counter.class)
.addClass(Online.class)
.buildSessionFactory();
*/
/* 方法三 */
sessionFactory = new Configuration().configure("/token.cfg.xml").buildSessionFactory();
} catch (HibernateException ex) {
throw new RuntimeException("Exception building SessionFactory: "
+ ex.getMessage(), ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session currentSession() throws HibernateException {
Session s = (Session) session.get();
// Open a new Session, if this Thread has none yet
if (s == null) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null)
s.close();
}
}

原来我一直使用的是方法一,而方法一虽然简单,却必须调用hibernate.cfg.xml来初始化Hibernate,如果二个包都用这样的HibernateUtil,则2个Hibernate.cfg.xml只第一个起作用。

方法二,可以解决方法一可能带来的问题。但如果自己了新的POJO,则仍然需要修改HibernateUtil.java。
所以,我试着使用了方法三,也成功了。

分享到:
本文"详细讲解Hibernate的配置文件"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4