<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">1075048</identifier>
  <title>HibernateOpenSessionInView</title>
  <relation_is_part_of type="integer">427236</relation_is_part_of>
  <date_modified type="datetime">2008-04-21T06:28:55Z</date_modified>
  <uri>http://kwon37xi.springnote.com/pages/1075048</uri>
  <date_created type="datetime">2008-04-15T11:58:41Z</date_created>
  <source>&lt;h1&gt;Spring + Hibernate : OpenSessionInView Filter or Interceptor&lt;/h1&gt;
&lt;p&gt;Hibernate&#47484; &#50937; &#50528;&#54540;&#47532;&#52992;&#51060;&#49496;&#50640;&#49436; &#49324;&#50857;&#54624; &#46412; Lazy Loading&#51012; &#51060;&#50857;&#54616;&#44256;&#51088; &#54620;&#45796;&#47732;(&#45824;&#48512;&#48516;&#51032; &#44221;&#50864;&#51068; &#44163;&#51060;&#45796;) OpenSessionInViewFilter&#47484; &#44845; &#49324;&#50857;&#54644;&#50556; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&#50668;&#44592;&#49436; &#46608; &#45796;&#47480; &#47928;&#51228;&#44032; &#49373;&#44592;&#45716;&#45936;, &#54620; &#52968;&#53944;&#47204;&#47084;&#47484; &#49892;&#54665;&#54616;&#47732;&#49436; &#53945;&#51221; &#49436;&#48708;&#49828;(&#53944;&#47004;&#51117;&#49496;&#51032; &#54620; &#45800;&#50948;&#44032; &#46104;&#45716;)&#47484; &#49892;&#54665;&#54616;&#47732;&#49436; &lt;strong&gt;&#47204;&#48177;&#51012; &#54616;&#47732; &#54616;&#51060;&#48260;&#45348;&#51060;&#53944; &#53944;&#47004;&#51117;&#49496; &#47588;&#45768;&#51200;&#44032; &#54788;&#51116; &#50676;&#47140;&#51080;&#45716; &#49464;&#49496;&#51012;&lt;/strong&gt;&lt;strong&gt;&#48148;&#47196; &#45803;&#50500;&#48260;&#47536;&#45796;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&#51060;&#47111;&#44172; &#46104;&#47732; &#50696;&#50808; &#52376;&#47532;&#44592;&#47484; &#53685;&#54644;&#49436; &#50696;&#50808; &#54868;&#47732;&#51012; &#49100;&#47140;&#51452;&#44144;&#45208; &#54624; &#44221;&#50864; &#54616;&#51060;&#48260;&#45348;&#51060;&#53944;&#47196; &#48512;&#53552; &#50619;&#50612;&#50728; &#44061;&#52404;&#47484; &#49324;&#50857;&#54616;&#47140; &#46308; &#46412; Hibernate&#51032; &#49464;&#49496;&#51060; &#50630;&#50612;&#49436; Lazy Loading&#51060; &#51089;&#46041;&#54616;&#51648; &#50506;&#45716;&#45796;&#45716; &#50696;&#50808;&#44032; &#46608; &#45796;&#49884; &#48156;&#49373;&#54616;&#44172; &#46108;&#45796;.&lt;/p&gt;
&lt;p&gt;&#51593;, &#50696;&#50808;&#44032; &#51060;&#51473;&#51004;&#47196; &#48156;&#49373;&#54616;&#45716; &#49345;&#54889;&#51060; &#46104;&#45716; &#44163;&#51060;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#51060;&#47484; &#47561;&#51004;&#47140;&#47732; OpenSessionInView &#54596;&#53552;&#45208; &#51064;&#53552;&#49481;&#53552;&#50640;&#49436; &lt;span style="color: rgb(254, 0, 0);"&gt;&lt;strong&gt;singleSession&#44050;&#51012; false&lt;/strong&gt;&lt;/span&gt;&#47196; &#51452;&#50612;&#50556; &#54620;&#45796;. &#51060;&#47111;&#44172;&#54616;&#47732; rollback &#46108; &#49464;&#49496;&#51060; &#45803;&#55176;&#45908;&#46972;&#46020; &#44536; &#50808;&#51032; &#45796;&#47480; &#53944;&#47004;&#51117;&#49496;&#50640;&#49436; &#44032;&#51256;&#50728; &#44050;&#46308;&#51008; &#44033;&#51088;&#44032; &#51088;&#49888;&#47564;&#51012; &#50948;&#54620; &#49464;&#49496;&#51012; &#44054;&#44256; &#51080;&#44256;, OSIV &#54596;&#53552;&#44032; &#44536; &#49464;&#49496;&#51012; &#50976;&#51648;&#54616;&#44256; &#51080;&#44592; &#46412;&#47928;&#50640; Lazy Loading&#51060; &#50668;&#51204;&#55176; &#51089;&#46041;&#54616;&#44172; &#46108;&#45796;. &#51060;&#50640; &#44288;&#54620; &#45236;&#50857;&#51008; &lt;a href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/support/OpenSessionInViewFilter.html" class="external" title="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/orm/hibernate3/support/OpenSessionInViewFilter.html"&gt;OpenSessionInViewFilter Api Doc&lt;/a&gt; &#50640;&#49436; &#48380; &#49688; &#51080;&#45796;.&lt;/p&gt;
&lt;p&gt;&#44536;&#47532;&#44256; singleSession&#51060; false&#44032; &#46108;&#45796;&#54632;&#51008; &#54620; &#52968;&#53944;&#47204;&#47084;&#50640;&#49436; &#50668;&#47084;&#44060;&#51032; &#52964;&#45349;&#49496;&#51012; &#49324;&#50857;&#54620;&#45796;&#45716; &#51032;&#48120;&#46020; &#46104;&#44592; &#46412;&#47928;&#50640;, &#51060; &#46412; &#52964;&#45349;&#49496; &#54400;&#51032; &#52572;&#45824; &#52964;&#45349;&#49496; &#44060;&#49688;&#44032; &#45320;&#47924; &#51201;&#51012; &#44221;&#50864; &#52964;&#45349;&#49496;&#51012; &#44032;&#51256;&#50732; &#49688; &#51080;&#45716; &#49345;&#54889;&#51060; &#46112; &#46412;&#44620;&#51648; &#50836;&#52397;&#51060; &#47688;&#52656;&#48260;&#47532;&#45716; &#54788;&#49345;&#51060; &#48156;&#49373;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&#46384;&#46972;&#49436; &lt;strong&gt;&#52964;&#45349;&#49496; &#54400;&#51032; &#52572;&#45824;&#44060;&#49688;&#44032; &#48512;&#51313;&#54616;&#51648; &#50506;&#46020;&#47197; &#51312;&#51221;&lt;/strong&gt;&#54644;&#51480;&#50556;&#47564; &#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;web.xml&lt;/h3&gt;
&lt;p&gt;&#50500;&#47000;&#45716; OpenSessionInViewFilter&#47484; &#51201;&#50857;&#54620; web.xml &#54028;&#51068;&#51060;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;hibernateOpenSessionInViewFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-class&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter-class&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;init-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;sessionFactoryBeanName&amp;lt;/param-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;sessionFactory&amp;lt;/param-value&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/init-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;init-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;param-name&amp;gt;singleSession&amp;lt;/param-name&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;lt;param-value&amp;gt;false&amp;lt;/param-value&amp;gt;&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/init-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-mapping&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;filter-name&amp;gt;hibernateOpenSessionInViewFilter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;dispatcher&amp;gt;REQUEST&amp;lt;/dispatcher&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/filter-mapping&amp;gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#52964;&#45349;&#49496; &#54400;&#51008; &#51452;&#47196; DBCP&#47484; &#49324;&#50857;&#54616;&#45716; &#54200;&#51064;&#45936;, DBCP&#51032; &#54532;&#46972;&#54140;&#54000; &#51473; &lt;strong&gt;maxActive&lt;/strong&gt; &#44050;&#46020; &#45720;&#47140;&#51452;&#50632;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Filter&#44032; &#50500;&#45768;&#46972; OpenSessionInViewInterceptor&#47484; &#49324;&#50857;&#54644;&#46020; &#46104;&#45716;&#45936;, &#45208;&#45716; &#54596;&#53552;&#44032; &#45908; &#45208;&#51008; &#44163; &#44057;&#45796;.&lt;/p&gt;
&lt;p&gt;UrlHandlerMapping&#51060; &#50668;&#47084;&#44060;&#44032; &#46112; &#44221;&#50864;, &#49345;&#49549;&#51012; &#48155;&#44144;&#45208;, &#44033; UrlHandlerMapping&#47560;&#45796; &#44033;&#44033; &#51064;&#53552;&#49481;&#53552;&#47484; &#51648;&#51221;&#54644;&#51480;&#50556;&#54616;&#45716;&#45936;, &#44536;&#44172; &#44480;&#52270;&#50500;&#49436;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&#47928;&#51228;&#51216;&lt;/h2&gt;
&lt;p&gt;singleSession &#50741;&#49496;&#51012; true&#47196; &#51460; &#44221;&#50864; &#47928;&#51228;&#44032; &#48156;&#49373;&#54624; &#49688; &#51080;&#45796;.&lt;/p&gt;
&lt;p&gt;&#47564;&#50557;, createFilter&#47484; &#49324;&#50857;&#54616;&#50668; &#53945;&#51221; &#44061;&#52404;&#44032; &#49548;&#50976;&#54616;&#44256; &#51080;&#45716; &#52972;&#47113;&#49496;&#50640; &#45824;&#54620; &#54596;&#53552;&#47484; &#47564;&#46308;&#46412;, &lt;strong&gt;&#50896; &#44061;&#52404;&#44032; &#54788;&#51116; &#53944;&#47004;&#51117;&#49496;&#51060; &#50500;&#45772; &#45796;&#47480; &#53944;&#47004;&#51117;&#49496;&#50640;&#49436; &#49373;&#49457;&#46108; &#44163;&#51068; &#44221;&#50864;&#50640;&#45716; createFilter&#47484; &#54624; &#49688;&#44032; &#50630;&#45796;&lt;/strong&gt;. &#51060;&#45716; &#49436;&#47196; &#45796;&#47480; &#49464;&#49496;&#50640;&#49436; &#49373;&#49457;&#46108; &#44061;&#52404;&#45716; First Level &#52880;&#49884;&#44032; &#47673;&#51648; &#50506;&#44592; &#46412;&#47928;&#51060;&#45796;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;createFilter&#47484; &#54616;&#47140;&#47732; &#54596;&#53552;&#47484; &#51201;&#50857;&#54616;&#47140;&#45716; &#52972;&#47113;&#49496;&#51032; &#48512;&#47784; &#44061;&#52404;&#47484; &#54788;&#51116; &#53944;&#47004;&#51117;&#49496;&#50640;&#49436; &#49373;&#49457;&#54644;&#50556;&#47564; &#54620;&#45796;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&#44536;&#47111;&#51648; &#50506;&#51008; &#44221;&#50864;&#50640;&#45716; "The collection was unreferenced."&#46972;&#45716; &#50696;&#50808;&#44032; &#48156;&#49373;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#46384;&#46972;&#49436;, &#51060;&#48120; &#45796;&#47480; &#53944;&#47004;&#51117;&#49496;&#50640;&#49436; &#44032;&#51256;&#50728; &#44061;&#52404;&#47484; &#49324;&#50857;&#54616;&#46020;&#47197; &#47564;&#46304; &#53076;&#46300;&#44032; &#47588;&#50864; &#47566;&#51008; &#44221;&#50864;&#50640;&#45716; &#52264;&#46972;&#47532; &#50696;&#50808;&#44032; &#48156;&#49373;&#54624; &#44221;&#50864;&#50640; &#50696;&#50808; &#54868;&#47732;&#49345;&#50640;&#45716; DB&#50640;&#49436; &#44032;&#51256;&#50728; &#45936;&#51060;&#53552;&#47484; &#50504; &#48372;&#50668;&#51452;&#46020;&#47197; &#54616;&#44256; singleSession=true&#47484; &#50976;&#51648;&#54616;&#45716; &#44163;&#51060; &#45227;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</source>
  <rights nil="true"></rights>
  <creator>http://kwon37xi.myid.net/</creator>
  <contributor_modified>http://kwon37xi.myid.net/</contributor_modified>
  <version type="integer">43</version>
  <tags></tags>
</page>
