1.SSH使用时,出现could not initialize proxy - the owning Session was closed 时的解决方案。
could not initialize proxy - the owning Session was closed
解决、
第一步、去掉hibernate的延迟加载
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
第二步、 hbm.xml中 lazy="false"
<many-to-one name="deptInfo" lazy="false">
<column name="deptId"/>
</many-to-one>
2.<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<!-- 和 spring 中的sesssionfactory ID 一致 --><init-param><param-name>sessionFactoryBeanName</param-name><param-value>sessionFactory</param-value></init-param></filter><filter-mapping><filter-name>hibernateFilter</filter-name><url-pattern>*.do</url-pattern><!-- *.jsp, *.do--></filter-mapping>
不过, 这时候又会导致更新数据时抛出如下异常:
Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
这时候再去网上找解决方案, 会有人说: 把参数 singleSession改为false, 就行了. 不过, 改完后, 估计不久就会遇到另一个郁闷的异常:
org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions
这下完了, 两个方案都不行, 到底怎么办? 还好, 在http://xuliangyong.iteye.com/blog/144818的主页上, 给了一个方案, 就是改写 OpenSessionInViewFilter 的代码, 非常感谢, 下面给出的就是最终方案:
web.xml
< filter-name >hibernateFilter</filter-name>
< filter-class > org.springframework.orm.hibernate3.support.OurOpenSessionInViewFilter </filter-class>
OurOpenSessionInViewFilter.java 代码:
package org.springframework.orm.hibernate3.support;
import org.hibernate.*;
/** * 单session模式下, 默认会发生无法提交的错误: * Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition. * 需要设置FlushMode并刷新session. * 参考: http://xuliangyong.iteye.com/blog/144818 * @author 刘长炯 */publicclass OurOpenSessionInViewFilter extends OpenSessionInViewFilter {
public OurOpenSessionInViewFilter() {
super.setFlushMode(FlushMode.AUTO);
}
protectedvoid closeSession(Session session, SessionFactory sessionFactory) {
session.flush();
try {
session.getTransaction().commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block//e.printStackTrace();
}
super.closeSession(session, sessionFactory);
}
}
解决使用1的方法
分享到:
相关推荐
**问题二:Could not open ServletContext resource [/WEB-INF/applicationContext.xml]** 此错误表示服务器无法找到或解析`applicationContext.xml`配置文件。检查该文件是否存在于`WEB-INF`目录下,同时确认文件的...
TGF-β、Shh信号通路调控肾纤维化上皮-间质转化的研究进展,齐堃,张彧,肾纤维化(RF)被认为是不同原因所致慢性肾脏病进展为终末期肾衰竭的共同通路,涉及多种细胞因子和多条信号通路。转化生长因子β
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH错误可能出现在各种情况中,例如配置问题、权限问题、密钥对问题或者网络障碍等。以下是对SSH常见错误及其解决方案的...
资源分类:Python库 所属语言:Python 资源全名:shh-0.1.0.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
在JPA(Java Persistence API)规范下,SHH2(Hibernate Search、Hibernate ORM 和 Hibernate Tools 的组合)的配置涉及多个方面,包括依赖库、Spring框架的配置以及持久化单元的设置。以下是一些关键点的详细说明:...
标题中的"SHH2-lib.rar_sh_shh2_shh2 oa_shh2 demo_sshdemo"似乎是一个组合了多个关键词的字符串,它可能代表了这个压缩包所包含的关键技术或项目名称。根据描述,我们可以推测这应该是一个基于Struts、Spring和...
shh下载
- Session和SessionFactory:Session是数据库会话,用于操作持久化对象;SessionFactory创建并管理Session。 - CRUD操作:Hibernate支持创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据库记录...
在探讨Shh蛋白对脑梗死小鼠脑皮质组织microRNA-210表达影响的研究中,科研人员首先建立了小鼠脑皮质梗死模型。利用基因芯片技术,筛选出了脑梗死小鼠脑皮质组织中的差异表达基因,并通过qRT-PCR技术对其差异性表达...
SHH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他安全网络服务。它主要用于在服务器之间传输数据,确保数据在传输过程中不被窃取或篡改。SHH通过加密技术提供了强大的身份验证和...
SHH框架集合Webservice是一个专为Java开发人员设计的整合性解决方案,旨在简化Web服务的开发、部署和消费。这个框架结合了Spring、Hibernate和Struts(SHH)这三个流行的开源技术,为构建高效、可扩展的企业级应用...
### SHH整合框架实现分页 #### 背景与目的 在开发Web应用程序时,为了提高用户体验并减轻服务器压力,通常需要对查询结果进行分页处理。分页不仅可以有效地展示大量数据,还能够减少每次请求的数据量,提高系统的...
OA系统,全称为Office Automation System,是办公自动化系统的简称,是一种利用信息技术,将组织内的信息、流程、人员和任务进行集成的系统。在本案例中,我们关注的是"OA系统-SHH版本",这通常意味着这是一个经过...
私钥文件通常以`.pem`或`.ppk`格式存储,可以使用`KeyPairGenerator`类来加载和解析。如果需要密码保护的私钥,可以通过`PemReader`类读取,并提供密码。 总的来说,ganymed-ssh2库为Java开发者提供了一种高效且...
标题提及的是"SHH1 jar 包",这表明我们要讨论的是一种特定的Java Archive(JAR)文件,名为"SHH1"。JAR文件是Java平台上的一个特殊类型的归档文件,它允许将多个类文件、相关的元数据和其他资源打包在一起,便于...
标题中的"PyPI 官网下载 | shh-0.5.0.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为"shh",版本为0.5.0,且文件格式为tar.gz。PyPI是Python开发者发布和分享自己编写的Python库或模块的...
这里提到的"shh2所需jar包"很显然指的是Struts2、Hibernate和Spring这三大核心框架的jar包,它们构成了Java Web开发中的经典SSH(Struts2、Spring、Hibernate)集成框架。下面将详细介绍这三个框架以及它们各自的jar...
2. 集成Spring:在Struts2的配置中引用Spring的DispatcherServlet,通过Spring的ApplicationContext加载Service和DAO层的bean。 3. 配置Hibernate:创建Hibernate的配置文件(hibernate.cfg.xml),定义实体类,编写...
- `load()`支持对象缓存和延迟加载,`get()`则不支持。 - `load()`加载的对象具有延迟加载特性,而`get()`加载的对象不支持。 **Struts** - **防止重复提交**:Struts 1.x中使用Token机制,保存一个唯一的Token,...