- 浏览: 117686 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (63)
- struts (7)
- spring (12)
- Hibernate (14)
- struts+spring+hibernate (11)
- Ajax (1)
- DWR (0)
- JSON (0)
- Junit (0)
- Lucene (15)
- Compass (0)
- Tomcat(Jsp) (0)
- MySql (0)
- JavaScript (0)
- Html (0)
- UML (0)
- Log4j (0)
- Ant (0)
- Acegi (0)
- (My)eclipse (0)
- java2 (0)
- Jakarta Commons (0)
- java Web (0)
- Ruby (0)
- Ruby On Rails (0)
- IBatis (0)
- 版本控制 (0)
- eXtremeComponents (0)
- SiteMesh (0)
- IT相关 (0)
- 电子商务 (0)
- 随笔 (0)
- 正则表达式 (0)
- 测试资料 (0)
- 个人收藏 (0)
- 开发经验 (0)
- 名词解释(java,j2ee) (1)
- 英语 (0)
- java规则引擎 (0)
- CMS系统 (0)
- XML操作 (0)
- jvm (0)
- 开源工具收集 (0)
- webService (2)
最新评论
-
锦毛鼠:
请问下您现在有没有这个demo啊?可以发我看看吗?
cxf webservice身份验证 -
z276356445t:
LZ,你写的类文件怎么和配置文件中的不一样呢,求解.
spring 定时器 -
j2eeli:
感谢共享!
spring 定时器 -
gimy:
写的很清楚,谢谢!
Spring-MultiActionController -
valgrind:
Exception in thread "main& ...
Lucene中文分词组件 JE-Analysis 1.4.0
代码: |
|
写了个保存的代码测试了一下,报如下的错误:
代码: |
|
在javaeye中搜索了一下,发现了Readonly的帖子,将web.xml修改为如下:
代码: |
|
保存的代码顺利通过测试,但是删除的代码却不能通过了.出现如下的错误:
代码: |
|
****************************************
首先要说明一下Open Session in View的作用,就是允许在每次的整个request的过程中使用同一个hibernate session,可以在这个request任
何时期lazy loading数据。
如果是singleSession=false的话,就不会在每次的整个request的过程中使用同一个hibernate session,而是每个数据访问都会产生各自的seesion,等于没有Open Session in View.
OpenSessionInViewFilter默认是不会对session 进行flush的,并且flush mode 是 never
代码: |
protected Session getSession(SessionFactory sessionFactory) throws DataAccessResourceFailureException { |
看getSession的方式就知道,把flush mode 设为FlushMode.NEVER,这样就算是commit的时候也不会session flush,
如果想在完成request过程中更新数据的话, 那就需要先把flush model设为FlushMode.AUTO,再在更新完数据后flush.
********************************
嗯,是事务的问题,感谢差沙也感谢cac的回复.
OpenSessionInView默认的FlushMode为
代码: |
|
可以采用在写保存更新删除代码的时候手动更改FlushMode
代码: |
|
但是这样做太繁琐了,第二种方式是采用spring的事务声明
代码: |
|
<o:p> </o:p>
代码: |
|
来源:http://spring.jactiongroup.net/viewtopic.php?p=5791
谢谢各位<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" type="#_x0000_t75" alt="Smile"><v:imagedata src="file:///C:\DOCUME~1\Q\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" o:href="http://spring.jactiongroup.net/images/smiles/icon_smile.gif"></v:imagedata></v:shape>同样在论坛里面搜索到遇到这个问题的朋友,回帖说去掉singleSession!迷惑了<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 11.25pt; HEIGHT: 11.25pt" type="#_x0000_t75" alt="Sad"><v:imagedata src="file:///C:\DOCUME~1\Q\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" o:href="http://spring.jactiongroup.net/images/smiles/icon_sad.gif"></v:imagedata></v:shape>
发表评论
-
详解Hibernate配置文件中映射元素
2007-09-27 16:09 1369配置文件中映射元素详解 对象关系的映射是用一个XML ... -
Java开源项目Hibernate包作用详
2007-09-27 16:08 910Hibernate一共包括了23个jar包,令人眼花缭乱。本 ... -
Hibernate学习心得--软件设计阶段的模型
2007-09-27 16:07 1061来源:BlogJava∣原文地 ... -
HIbernate参数说明
2007-09-27 16:06 8790 推荐 set节点有以下 ... -
Hibernate 3.0批量更新与删除
2007-09-27 16:06 1568Hibernate 3.0中,Session接口中被废弃的方法 ... -
关于条件查询detachedCriteria的一点体会
2007-09-27 16:03 1281假设要通过stuName查询一个学生Student记录,可以 ... -
使用模板模式简化DAO操作Hibernate
2007-09-27 15:58 1013原文出处:http://www.javaresearch.or ... -
Hibernate分页
2007-09-27 15:21 1146连续看了两篇robbin有关DetachedCriteria ... -
应用Hibernate3的DetachedCriteria实现分页查询
2007-09-27 15:19 990Hibernate3提供了DetachedCriteria, ... -
通过XDoclet(ant)生成Hibernate映射文件
2007-09-27 15:17 1144通过XDoclet可以我们的精力放在编写java源文件上。 ... -
利用Hibernate配置文件生成数据库
2007-09-27 15:07 1790前很多人使用Hibernate作为持久层,如果我们已经写了配置 ... -
Hibernate 3新增XML关系持久性介绍
2007-09-27 14:59 924Hibernate的易用性、高性能和对象关系持久性等高级特性给 ... -
配置Hibernate连接池
2007-09-27 14:54 2630Hibernate自带的连接池性能不高,而且还存在BUG,因此 ...
相关推荐
### Spring + Hibernate OpenSessionInView 模式的理解和应用 在Java Web开发中,Spring与Hibernate作为两个重要的框架,经常被一起使用来实现业务逻辑与数据持久化的处理。而在使用这两个框架时,为了更好地管理...
为了练手培训,给大家准备的 Open Session In View 的简单例子,纯代码,大家可以参考,其中主要说了六部分内容: 1.通过接口编程 2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载...
在Java Web开发中,OpenSessionInView(OSIV)模式是一种常见的解决数据持久化问题的设计模式,主要用于Spring框架与Hibernate等...同时,注意合理配置和使用,以防止长时间打开的Session导致内存泄漏或其他潜在问题。
Spring框架是Java开发中不可或缺的一部分,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、事务管理等。在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`...
同时,需要注意的是,OpenSessionInView模式虽然方便,但也会带来潜在的问题,如事务边界不清晰和会话泄漏。因此,在实际应用中,应结合具体需求谨慎使用,并考虑使用更现代的解决方案,如Spring Data JPA的...
这样做的好处在于,可以确保在整个请求处理过程中session始终处于可用状态,使得在视图(View)层也能利用懒加载特性。 实现这一机制的方式有两种: 1. **OpenSessionInViewInterceptor**:通过拦截器实现。在Spring...
SSH是Java Web开发中的一个流行框架组合,由Struts、Hibernate和Spring三个组件构成。这个框架集成提供了模型-视图-控制器(MVC)架构,数据持久化,以及依赖注入和事务管理等功能,大大简化了企业级应用的开发工作...
然而,单纯地使用 `lazy="true"` 有时并不能很好地工作,尤其是在Web应用中。由于HTTP请求的无状态性,每次请求结束后,Session就会关闭,导致在后续的操作中试图访问懒加载属性时会出现“Session已关闭”的异常。...
和Spring中OpenSessionInView由于org.springframework.web.struts.ContextLoaderPlugIn中保存同一个对象的名不同导致openSessionInView失效 稍微修改后在struts-config.xml中使用MyContextLoaderPlugIn.jar包中...
1. **事务管理**:OpenSessionInViewFilter并不负责事务的开启和提交,通常需要配合Spring的TransactionProxyFactoryBean或者@Transactional注解来管理事务。 2. **性能影响**:由于延长了Session的生命周期,可能...
事务隔离级别有五种,从低到高分别为DEFAULT、READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ和SERIALIZABLE,每种级别都对应不同的并发控制策略。 9. **Hibernate的update()与saveOrUpdate()**:`update()`...
FreeRoller和Atlassian Confluence等应用采用OpenSessionInView模式,尽管存在争议,但在某些场景下能有效提升效率。 ### Domain Logic与Use Case Logic 文档提到区分Domain Logic(领域逻辑)和Use Case Logic...
OpenSessionInView过滤器在Web请求的整个生命周期内保持一个Hibernate Session,使得在视图渲染阶段也能访问到数据库对象,避免了懒加载异常。 五、配置文件 1. `jdbc.properties`:存放数据库连接信息,如URL、...
通过`HibernateTemplate`类,Spring简化了Hibernate的使用,提供了包括保存、更新、删除、查询等在内的常用操作。当使用`getHibernateTemplate()`方法时,Spring会自动管理事务,无需显式提交或回滚,提高了开发效率...
在Spring中使用Hibernate时,可以利用`HibernateTemplate`简化常见的CRUD操作,同时Spring的事务管理器能无缝集成Hibernate的事务处理,提供统一的事务控制。通过Spring配置,可以轻松管理Hibernate的SessionFactory...
事务隔离级别有:DEFAULT(遵循数据库默认)、READ_UNCOMMITTED(可能出现脏读、不可重复读和幻影读)、READ_COMMITTED(可能出现不可重复读和幻影读)、REPEATABLE_READ(可能出现幻影读)和SERIALIZABLE(最安全但...
8. **设置字符编码过滤器**:为了确保请求和响应的正确编码,需要在`web.xml`中添加一个自定义的Filter,如`SetEncodingFilters`,以设置请求和响应的字符编码为UTF-8或其他指定的编码格式。 在实际开发中,SSH框架...
在Spring中使用Hibernate,通常需要配置SessionFactory、TransactionManager,使用HibernateTemplate或SessionFactoryBean进行数据访问,同时结合Spring的声明式事务管理,确保事务的正确性和一致性。 以上是对SSH...
这个项目是一个基于最新版本SSH的示例应用,具体为Hibernate 5.2.3、Struts 2.5.2和Spring 4.3.3的集成。以下是关于SSH整合及其相关知识点的详细说明: **1. Spring框架(4.3.3)** Spring是一个开源的Java平台,它...
虽然这里的配置没有完整展示,但通常我们会为每个`SessionFactory`创建一个`JdbcTemplate`实例,以便在不使用Hibernate的情况下执行SQL操作。 总结起来,这个多数据库解决方案利用Spring的IoC容器管理和配置了多个...