﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-honzeland-随笔分类-Spring</title><link>http://www.blogjava.net/honzeland/category/43476.html</link><description>记录点滴。。。</description><language>zh-cn</language><lastBuildDate>Sat, 09 Oct 2010 09:08:22 GMT</lastBuildDate><pubDate>Sat, 09 Oct 2010 09:08:22 GMT</pubDate><ttl>60</ttl><item><title>GWT 2 Spring 3 JPA 2 Hibernate 3.5 Tutorial – Eclipse and Maven 2 showcase </title><link>http://www.blogjava.net/honzeland/archive/2010/08/20/329452.html</link><dc:creator>honzeland</dc:creator><author>honzeland</author><pubDate>Fri, 20 Aug 2010 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/honzeland/archive/2010/08/20/329452.html</guid><wfw:comment>http://www.blogjava.net/honzeland/comments/329452.html</wfw:comment><comments>http://www.blogjava.net/honzeland/archive/2010/08/20/329452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honzeland/comments/commentRss/329452.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honzeland/services/trackbacks/329452.html</trackback:ping><description><![CDATA[See details at:&nbsp;<a href="http://www.javacodegeeks.com/2010/07/gwt-2-spring-3-jpa-2-hibernate-35.html">http://www.javacodegeeks.com/2010/07/gwt-2-spring-3-jpa-2-hibernate-35.html</a>
<div><a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html" style="color: #333333; text-decoration: none; display: inline !important; font-weight: normal; font-family: Georgia, serif; font-size: 26px; line-height: 36px; "><span style="font-size: 10pt; "></span></a><span style="font-size: 14pt; "><a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html" style="color: #333333; text-decoration: none; display: inline !important; font-weight: normal; font-family: Georgia, serif; font-size: 26px; line-height: 36px; "><span style="font-size: 10pt; "></span></a><span style="font-size: 12pt; "><a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html" style="color: #333333; text-decoration: none; display: inline !important; font-weight: normal; font-family: Georgia, serif; font-size: 26px; line-height: 36px; "><span style="font-size: 10pt; "><span style="font-size: 12pt; ">Executing Simple Joins Across Owned Relationships</span></span></a>&nbsp;for gae:&nbsp;<a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html">http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html</a></span><a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html"></a></span><a href="http://gae-java-persistence.blogspot.com/2010/03/executing-simple-joins-across-owned.html"></a></div>
<img src ="http://www.blogjava.net/honzeland/aggbug/329452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honzeland/" target="_blank">honzeland</a> 2010-08-20 13:01 <a href="http://www.blogjava.net/honzeland/archive/2010/08/20/329452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only</title><link>http://www.blogjava.net/honzeland/archive/2010/02/24/313829.html</link><dc:creator>honzeland</dc:creator><author>honzeland</author><pubDate>Wed, 24 Feb 2010 10:02:00 GMT</pubDate><guid>http://www.blogjava.net/honzeland/archive/2010/02/24/313829.html</guid><wfw:comment>http://www.blogjava.net/honzeland/comments/313829.html</wfw:comment><comments>http://www.blogjava.net/honzeland/archive/2010/02/24/313829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honzeland/comments/commentRss/313829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honzeland/services/trackbacks/313829.html</trackback:ping><description><![CDATA[发生这种异常的case:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp; @Transactional<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;foo()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bar();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(RuntimeException&nbsp;re)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;caught&nbsp;but&nbsp;not&nbsp;throw&nbsp;further</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;@Transactional<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;bar()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
如果foo在调用bar的时候，bar抛出RuntimeException，Spring在bar return时将Transactional标记为Rollback only， 而foo捕获了bar的RuntimeException，所以Spring将会commit foo的事务，但是foo和bar使用的是同一事务，因此在commit foo事务时，将会抛出UnexpectedRollbackException。注意：如果foo和bar在同一class中，不会出现这种情况，因为：<br />
<br />
<span style="font-style: italic;">Since this mechanism is based on proxies, only 'external' method calls coming in through the proxy will be intercepted. This means that 'self-invocation', i.e. a method within the target object calling some other method of the target object, won't lead to an actual transaction at runtime even if the invoked method is marked with @Transactional!</span><br />
<br />
可以通过配置log4j来debug Spring事务获取情况：<br />
To delve more into it I would turn up your log4j logging to debug and also look at what ExerciseModuleController is doing at line 91, e.g.: add a logger for org.springframework.transaction<br />
<img src ="http://www.blogjava.net/honzeland/aggbug/313829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honzeland/" target="_blank">honzeland</a> 2010-02-24 18:02 <a href="http://www.blogjava.net/honzeland/archive/2010/02/24/313829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Discussion for Open Session In View Pattern for Hibernate</title><link>http://www.blogjava.net/honzeland/archive/2010/01/29/311244.html</link><dc:creator>honzeland</dc:creator><author>honzeland</author><pubDate>Fri, 29 Jan 2010 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/honzeland/archive/2010/01/29/311244.html</guid><wfw:comment>http://www.blogjava.net/honzeland/comments/311244.html</wfw:comment><comments>http://www.blogjava.net/honzeland/archive/2010/01/29/311244.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/honzeland/comments/commentRss/311244.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/honzeland/services/trackbacks/311244.html</trackback:ping><description><![CDATA[From:
<a href="http://www.mail-archive.com/stripes-users@lists.sourceforge.net/msg02908.html">http://www.mail-archive.com/stripes-users@lists.sourceforge.net/msg02908.html</a><br />
<br />
<br />
<img src ="http://www.blogjava.net/honzeland/aggbug/311244.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/honzeland/" target="_blank">honzeland</a> 2010-01-29 17:20 <a href="http://www.blogjava.net/honzeland/archive/2010/01/29/311244.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>