欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

开发中碰到的几个问题

程序员文章站 2022-03-17 12:21:20
...

1、

碰到异常:

Servlet.service() for servlet action threw exception
org.springframework.dao.InvalidDataAccessApiUsageException: 
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.

 分析解决:

在spring applicationContext.xml中有定义

<!-- 以AspectJ方式 定义 AOP -->
	<aop:config proxy-target-class="true">
		<aop:advisor pointcut="execution(* com.com_name.pro_name.*.service.*Manager.*(..))" advice-ref="txAdvice"/>
	</aop:config>

	<!-- 基本事务定义,使用transactionManager作事务管理,默认get*方法的事务为readonly,其余方法按默认设置.
			 默认的设置请参考Spring文档事务一章. -->
	<tx:advice id="txAdvice">
		<tx:attributes>
			<tx:method name="get*" read-only="true"/>
			<tx:method name="find*" read-only="true"/>
			<tx:method name="save*"/>
			<tx:method name="update*"/>
			<tx:method name="remove*"/>
			<tx:method name="delete*"/>
			<tx:method name="add*"/>
		</tx:attributes>
	</tx:advice>
 

<tx:method

行定义了所有service层可执行数据更新操作的方法规范,必须限于已规定的几个方法名内;

2、

<!----><!----> 在hibernate的级联查询中的排序问题,hibernate annotation @orderby

如下所示:

@OneToMany(fetch = FetchType.LAZY)
	@JoinColumn(name = "TEM_ID", insertable = false, updatable=false)
	@OrderBy("playOrder ASC")
	public List<PlaylistAsset> getAssetList() {
		return assetList;
	}
 

 

3、带参数的ActionForward转发

String returnForward = "/xxxx.do" + "?method=listAllSub&detail_id=" + detail_id
									+"&pane_id="+pane_id;
		return new ActionForward(returnForward);