﻿<?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-Reg-随笔分类-SS2H</title><link>http://www.blogjava.net/Reg/category/45430.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 05 Apr 2011 20:33:01 GMT</lastBuildDate><pubDate>Tue, 05 Apr 2011 20:33:01 GMT</pubDate><ttl>60</ttl><item><title>a different object with the same identifier value was already associated with the session</title><link>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Tue, 05 Apr 2011 14:26:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/347655.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2011/04/05/347655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/347655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/347655.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #000000">这个错误我一共遇到过两次，一直没有找到很好的解决方案，这个错误产生原因相信大家都知道，因为在hibernate中同一个session里面有了两个相同标识但是是不同实体.<br />
一开始按网上说的用session.merge(Object)报了一个错，可能是没有用好，改用&nbsp;session.clear();&nbsp;session.update(user);这样就OK了,<br />
方法为：<br />
<br />
</span><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;org.springframework.orm.hibernate3.support;<br />
<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><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;modifyByMerge(User&nbsp;user)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;getHibernateTemplate().getSessionFactory().<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getCurrentSession();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.clear();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.update(user);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
项目用的是spring&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;hibernate所以得用getHibernateTemplate().getSessionFactory().getCurrentSession();得当前Session<br />
<br />
</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/347655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2011-04-05 22:26 <a href="http://www.blogjava.net/Reg/archive/2011/04/05/347655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts2不配置result参数 进行跳转实现</title><link>http://www.blogjava.net/Reg/archive/2010/11/20/338553.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Sat, 20 Nov 2010 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/11/20/338553.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/338553.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/11/20/338553.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/338553.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/338553.html</trackback:ping><description><![CDATA[<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #008000">//</span><span style="color: #008000">url绝对路径</span><span style="color: #008000"><br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getRequest().getRequestDispatcher(</span><span style="color: #000000">"</span><span style="color: #000000">url</span><span style="color: #000000">"</span><span style="color: #000000">).forward(</span><span style="color: #0000ff">this</span><span style="color: #000000">.getRequest(),</span><span style="color: #0000ff">this</span><span style="color: #000000">.getResponse());<br />
<img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;NONE;</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/338553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-11-20 16:53 <a href="http://www.blogjava.net/Reg/archive/2010/11/20/338553.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate批量提交</title><link>http://www.blogjava.net/Reg/archive/2010/07/30/327589.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Fri, 30 Jul 2010 09:17:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2010/07/30/327589.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/327589.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2010/07/30/327589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/327589.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/327589.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">批量插入（Batch&nbsp;inserts）&nbsp;<br />
如果要将很多对象持久化，你必须通过经常的调用&nbsp;flush()&nbsp;以及稍后调用&nbsp;clear()&nbsp;来控制第一级缓存的大小。&nbsp;<br />
<br />
Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sessionFactory.openSession();&nbsp;<br />
Transaction&nbsp;tx&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.beginTransaction();&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">100000</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;)&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Customer&nbsp;customer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Customer(<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />..);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;session.save(customer);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="color: #000000">%</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;)&nbsp;{&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">20,&nbsp;same&nbsp;as&nbsp;the&nbsp;JDBC&nbsp;batch&nbsp;size&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">20,与JDBC批量设置相同&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">flush&nbsp;a&nbsp;batch&nbsp;of&nbsp;inserts&nbsp;and&nbsp;release&nbsp;memory:&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">将本批插入的对象立即写入数据库并释放内存&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.flush();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.clear();&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
}&nbsp;<br />
&nbsp;&nbsp;&nbsp;<br />
tx.commit();&nbsp;<br />
session.close();&nbsp;<br />
<br />
</span></div>
<img src ="http://www.blogjava.net/Reg/aggbug/327589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2010-07-30 17:17 <a href="http://www.blogjava.net/Reg/archive/2010/07/30/327589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2的s：iterator 标签 详解</title><link>http://www.blogjava.net/Reg/archive/2009/11/20/303085.html</link><dc:creator>艾波</dc:creator><author>艾波</author><pubDate>Fri, 20 Nov 2009 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/Reg/archive/2009/11/20/303085.html</guid><wfw:comment>http://www.blogjava.net/Reg/comments/303085.html</wfw:comment><comments>http://www.blogjava.net/Reg/archive/2009/11/20/303085.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Reg/comments/commentRss/303085.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Reg/services/trackbacks/303085.html</trackback:ping><description><![CDATA[<table style="table-layout: fixed; width: 100%">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">
            <div>struts2的s：iterator 可以遍历 数据栈里面的任何数组，集合等等 以下几个简单的demo：<br />
            <span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> 标签有3个属性：<br />
            &nbsp;&nbsp;&nbsp; value：被迭代的集合<br />
            &nbsp;&nbsp;&nbsp; id&nbsp;&nbsp; ：指定集合里面的元素的id<br />
            &nbsp;&nbsp;&nbsp; status 迭代元素的索引</div>
            <div>1:jsp页面定义元素写法 数组或list</div>
            <div><br />
            &lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="{'1','2','3','4','5'}" id='number'&gt; <br />
            &nbsp;&nbsp;&nbsp; &lt;s:property value='number'/&gt;A <br />
            &lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />
            打印结果为: 1A2A3A4A5A</div>
            <div>2:索引的用法<br />
            如果指定了status，每次的迭代数据都有IteratorStatus的实例，它有以下几个方法<br />
            int getCount()返回当前迭代了几个元素<br />
            int getIndex()返回当前元素索引<br />
            boolean isEven()当然的索引是否偶数<br />
            boolean isFirst()当前是否第一个元素<br />
            boolean isLast()<br />
            boolean isOdd()当前元素索引是否奇数</div>
            <div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="{'a','b','c'}" id='char' status='st'&gt; <br />
            &nbsp;&nbsp;&nbsp; &lt;s:if test="#st.Even"&gt; <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在的索引是奇数为:&lt;s:property value='#st.index'/&gt; <br />
            &nbsp;&nbsp;&nbsp; &lt;/s:if&gt; <br />
            &nbsp;&nbsp;&nbsp; 当前元素值：&lt;s:property value='char'/&gt; <br />
            &lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />
            3：遍历map<br />
            value可以直接定义为：</div>
            <div>value="#{"1":"a","2":"b"}" <br />
            每个元素以都好隔开。元素之间的key和value 冒号隔开<br />
            value也可以是数据栈里面的java.util.Map对象<br />
            遍历写法如下：</div>
            <div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="map" id="id" status="st"&gt; <br />
            &nbsp;&nbsp;&nbsp;&nbsp; key : &lt;s:property value='key'/&gt; <br />
            &nbsp;&nbsp;&nbsp;&nbsp; value:&lt;s:property vlaue='value'/&gt; <br />
            &lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />
            当然key 和value 都可以使java 的 Object</div>
            <div>3：遍历数据栈.简单的List类，<br />
            List&lt;Attr&gt; <br />
            class Attr{String attrName;String getAttrName(){return "123";}}</div>
            <div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="label" id="id"&gt; <br />
            &nbsp;&nbsp;&nbsp; &lt;s:property value="#id.attrName" /&gt; <br />
            &lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt; <br />
            当然value 还可以写成 value="%{label}" label可以有.操作<br />
            label的属性List 可以写成value="%{label.list}" 相当于：getLabel().getList();</div>
            <div>4：遍历2个list；<br />
            List&lt;AttrName&gt; attrN {color,size,style}<br />
            List&lt;AttrValue&gt; attrV {red,20,gay}<br />
            这2个list的元素是一一对应的，一个attrN对应一个attrV</div>
            <div>&lt;<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span> value="%{attrN }" id="id"&nbsp;&nbsp; status="status"&gt; <br />
            index&nbsp;&nbsp;&nbsp; is : &lt;s:property value='status.index'/&gt; <br />
            attrName is : &lt;s:property value='id'/&gt; or &lt;s:property value='%{id}'/&gt; <br />
            attrName is : &lt;s:property value='%{attrV[#status.index]}'/&gt; <br />
            &lt;/<span class="hilite1"><font style="background-color: #ffff00">s:iterator</font></span>&gt;&nbsp;&nbsp;</div>
            </div>
            </td>
        </tr>
    </tbody>
</table>
 <img src ="http://www.blogjava.net/Reg/aggbug/303085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Reg/" target="_blank">艾波</a> 2009-11-20 17:56 <a href="http://www.blogjava.net/Reg/archive/2009/11/20/303085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>