发现在使用hibernate synchronizer 3.1.9自动生成的DAO中的方法时,报出"session is closed."异常
比如使用findByName()方法时,
查看了一下生成的代码,发现
public java.util.List<mapping.User> findByName (java.lang.String name) {
return findFiltered ("Name", name).list();
}
而这最终调用的_BaseRootDAO中的如下方法:
protected Criteria findFiltered (String propName, Object filter, Order order) {
Session s = null;
try {
s = getSession();
return findFiltered(s, propName, filter, order);
}
finally {
closeSession(s);
}
}
(注意在finally中关闭了session)
当调用这个方法生成的Criteria的list()方法时,list()方法中有一段代码检查到session 是关闭的,就抛出了上面的一场了。
public List list() throws HibernateException {
before();
try {
return session.list( this );
}
finally {
after();
}
}
Session中的list()方法:
public List list(CriteriaImpl criteria) throws HibernateException {
errorIfClosed();
checkTransactionSynchStatus();
String[] implementors = factory.getImplementors( criteria.getEntityOrClassName() );
int size = implementors.length;
。。。。。。
其中errorIfClosed():
protected void errorIfClosed() {
if ( closed ) {
throw new SessionException( "Session is closed!" );
}
}
暂时的解决方法是把上面的finally中关闭session的代码去掉。则程序运行正常。
本人初学Hibernate,请大家多多致电,谢谢!
分享到:
相关推荐
1. 下载:获取名为"hibernatesynchronizer_3.1.9"的压缩包文件。 2. 解压:将压缩包解压,获取到"com.hudson.hibernatesynchronizer_3.1.9"文件夹。 3. 安装:打开Eclipse,进入“Help” -> "Install New Software...
《HibernateSynchronizer 3.1.9:数据库与对象模型同步的利器》 HibernateSynchronizer是一款基于Java的开源工具,专为开发者设计,用于实现数据库与对象模型的自动同步。这个工具的核心功能在于帮助开发者高效地...
本篇将详细介绍HibernateSynchronizer的两个主要版本——2.3.1和3.1.9,并探讨其核心功能及应用场景。 一、HibernateSynchronizer简介 HibernateSynchronizer是开发者Hudson创建的一款工具,它的核心目标是帮助...
【hibernatesynchronizer_3.1.9 for JDK1.4】是一个针对JDK1.4版本的Hibernate同步工具,主要用于在多线程环境下确保数据的一致性和完整性。Hibernate是一个非常流行的Java对象关系映射(ORM)框架,它允许开发者...
HibernateSynchronizer hibernate配置文件生成工具
在整合Hibernate Synchronizer与Spring框架的过程中,我们主要关注的是如何让这两个强大的工具协同工作,以实现高效的数据持久化管理。Hibernate Synchronizer是一个用于自动更新Hibernate映射文件(.hbm.xml)的...
然而,手动编写和维护Hibernate的映射文件(.hbm.xml)是一项繁琐的任务,而Hibernate Synchronizer正是为了解决这一问题而诞生。 1.2 功能特性 - 自动创建:根据数据库表结构自动生成对应的Hibernate映射文件。 - ...
本文主要介绍了如何在Eclipse3.2环境下使用HibernateSynchronizer-3.1.9、Oracle92和hibernate-3.2.4.sp1来搭建一个简单的Hibernate开发环境,并通过实例演示了基本的CRUD(创建、读取、更新、删除)操作。...
最后,"HibernateSynchronizer-3.1.9"是一个特定版本的HibernateSynchronizer工具,它可能是用于在Hibernate和数据库之间进行同步的工具,便于数据库的更新和管理。 **Hibernate3知识点** Hibernate3是一个流行的...
配置Hibernate文件集.rar apache-ant-1.7.1-bin.zip HibernateSynchronizer-3.1.9.zip Middlegen-Hibernate-r5.zip Hibernate_DEV_GUIDE.pdf
然而,我们注意到在提供的文件列表中出现了"HibernateSynchronizer-3.1.9"这个标签。Hibernate Synchronizer是一款与IPScan不同的工具,主要用于Java开发环境,它可以帮助开发者在Hibernate ORM框架下同步数据库和...
4. **Hibernate Synchronizer 3.1.9**: Hibernate Synchronizer是一款专为Eclipse设计的插件,目的是自动同步数据库和Hibernate实体类之间的变化。当数据库表结构发生变化时,该插件能够自动更新对应的Java实体类...
“com.hudson.hibernatesynchronizer_3.1.9.rar”可能是Hibernate Synchronizer插件的一个版本,它可以帮助同步数据库和Hibernate实体;“陈蕾生成的dao.rar”可能是一个个人分享的DAO生成样例;“localnzgame”可能...
### Struts Spring Hibernate 整合...推荐使用Hibernate Synchronizer Eclipse Plugin来简化开发工作,其下载地址为[http://nchc.dl.sourceforge.net/sourceforge/hibernatesynch/HibernateSynchronizer-3.1.9.zip]...
8. **Hibernate Synchronizer Eclipse Plugin**: 一个辅助Hibernate开发的插件,可以在[这里](http://nchc.dl.sourceforge.net/sourceforge/hibernatesynch/HibernateSynchronizer-3.1.9.zip)下载。 9. **MySQL**: ...