就是问Spring是如何管理Hibernate Session的我现在只是想明白 假设我用了延迟加载 或者我需要对QUERY进行一些操作(这样的话就不能用HibernateDaoSupport的查询方法了) 在这种情况下我要如何管理SESSION 比如什么时候开 什么时候关 是手动执行开关 还是自动执行开关 我基本上不会SPRING 只是稍微有些了解 看看你们都是怎么做的 我表达能力有问题 不知道该咋问 抱歉抱歉..
解决方案 »
- 用myeclipse6.5添加spring后,出现这样的错误,求助!!
- 求助 有谁知道数据库的索引有哪几种?
- 求一句java正则
- Java比较两个对象然后记录不同属性值?
- 急,各位朋友帮个忙。在线等待!
- 请教bean:write
- 我现在想自己建立一个目录,用struts结构创建一个用户注册的功能,请问我应该怎么具体的操作呢?谢谢啊
- Eclipse下lomboz 3.0.1启动Weblogic 8.1的时候无法启动数据连接池..以及数据源...的问题...
- 我想学java,请问都有什么好的编译环境。
- 500分请教struts问题
- 怎么将xml里面的<;变成<
- 关于文件下载的文件名问题??????????????????????????
如果有延迟加载可以加上在web.xml中加spring的OpenSessionInViewFilter
为了解决延迟加载的问题,可以用opsesionInView来解决,这样即使在jsp里也可以访问延迟加载的属性,而不必自己去预先初始化
<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>/*</url-pattern>
</filter-mapping>
可是对于大的应用这样会有性能问题,所以一般大的系统不使用这种方式
这样的话 那我是不是可以关闭SESSION?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@124.0.0.1:1521:revict1">
</property>
<property name="username" value="xx"></property>
<property name="password" value="xxx"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.OracleDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingLocations">
<value>classpath:/com/revic/lms/*/po/*.hbm.xml</value>
</property>
<property name="lobHandler">
<ref bean="lobHandler" />
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/> <bean id="lobHandler" lazy-init="true" class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref bean="nativeJdbcExtractor"/>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> <!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice> <!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod"
expression="execution(* com.revic.lms.*.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod"
advice-ref="txAdvice" />
</aop:config>
</beans>
<!-- 配置事务的传播特性 -->
和
<!-- 那些类的哪些方法参与事务 -->
是干哈用的?配置这些东西之后 DAO该咋写 给个例子可以木? 谢谢谢谢
可问题是我做的东西并不大 是个很SMALL的东西 而且我比较新手 对有些事情把握不好 不知该如何去做 lazy可以不用考虑 但是我就是搞不懂 如何管理SESSION 因为之前一直都是手动操作SESSION的