HibernateのLazy initializeエラーでビューを表示できない
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2008/03/07からのアクセス回数 &counter;
* HibernateのLazy initializeエラーでビューを表示できない ...
Cart問題の最後で、注文者の情報をいれた後に内容を表示する...
こんな最後の最後に勘弁してくださいと気持ちでした!
#pre{{
-- 例外のトレース
org.springframework.web.util.NestedServletException: Requ...
org.hibernate.LazyInitializationException: failed to lazi...
example.cart.domain.Order.lineItemList, no session or ses...
org.springframework.web.servlet.FrameworkServlet.process...
org.springframework.web.servlet.FrameworkServlet.doGet(F...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
org.springframework.web.filter.CharacterEncodingFilter.d...
org.springframework.web.filter.OncePerRequestFilter.doFi...
-- 本来の原因
org.hibernate.LazyInitializationException: failed to lazi...
example.cart.domain.Order.lineItemList, no session or ses...
org.hibernate.collection.AbstractPersistentCollection.th...
--途中省略
org.apache.velocity.Template.merge(Template.java:254)
--途中省略
org.springframework.web.servlet.DispatcherServlet.render...
--途中省略
org.springframework.web.servlet.FrameworkServlet.doGet(F...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
org.springframework.web.filter.CharacterEncodingFilter.d...
org.springframework.web.filter.OncePerRequestFilter.doFi...
}}
どうやらビューでコレクションの要素であるLineItemを遅延初...
Hinbernateのsessionがクローズしていたので例外が発生みたい...
そこで、ネット"Spring Hibernate Lazy initialize error" を...
- [[とあるITエンジニアの業務手帖>http://d.hatena.ne.jp/ge...
に同様のケースが報告されていました。
解決策としては、''Hibernateマッピングファイルのlazy属性を...
そこで、以下のようにOrderのbagタグにlazy="false"を入れ
#pre{{
<bag name="lineItemList"
cascade="all"
table="T_LINEITEM"
lazy="false">
<key column="orderId" foreign-key="ID"/>
<one-to-many class="example.cart.domain.LineItem"/>
</bag>
}}
LineItemのmany-to-oneタグにも同様に
#pre{{
<many-to-one
name="product"
column="productId"
cascade="save-update"
lazy="false"
class="example.cart.domain.Product"/>
}}
としたら、正常に動作するようになりました。
** Hibernateがデフォルトでlazy initializeをtrueにしている...
では、どうしてHibernateがデフォルトでlazy initializeをtru...
それは、パフォーマンスを向上するため不要な初期化をさける...
とするとlazy="false"の設定は、本当の対処方法ではないので...
今度は、"org.hibernate.LazyInitializationException: faile...
#pre{{
Originally Posted by karldmoore
If the association is lazy loaded and the Session has bee...
You either need to eagerly load the association, use some...
extend the Session around the request or reattach the ent...
}}
という回答を見つけました。
どうやら、OpenSessionInViewを使えば、クローズしていたsess...
- [[新・たけぞう瀕死の日記>http://www3.vis.ne.jp/~asaki/p...
にOpenSessionInViewの使い方が出ていました。
また、Spring LIVEの240ページにも同様の説明がでていました。
** 私の解決策 [#z334569d]
OpenSessionInViewには、批判的なコメントも見受けられました。
それは、
- HTTPのセッションで同一のHinbernateのsessionを使用しなく...
- lazy initializeでのflashModeをAUTOにしなくてならない
上記の問題を考え合わせた結果、
- Hibernateマッピングファイルのlazy=falseの部分を元に戻し
- 以下のようにweb.xmlにOpenSessionInViewのフィルターを追...
#pre{{
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.suppor...
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
}}
filterのinit-paramでsingleSessionとflushModeを指定すると...
* コメント [#w7e5aec0]
この記事は、
#vote(おもしろかった[42],そうでもない[0],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2008/03/07からのアクセス回数 &counter;
* HibernateのLazy initializeエラーでビューを表示できない ...
Cart問題の最後で、注文者の情報をいれた後に内容を表示する...
こんな最後の最後に勘弁してくださいと気持ちでした!
#pre{{
-- 例外のトレース
org.springframework.web.util.NestedServletException: Requ...
org.hibernate.LazyInitializationException: failed to lazi...
example.cart.domain.Order.lineItemList, no session or ses...
org.springframework.web.servlet.FrameworkServlet.process...
org.springframework.web.servlet.FrameworkServlet.doGet(F...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
org.springframework.web.filter.CharacterEncodingFilter.d...
org.springframework.web.filter.OncePerRequestFilter.doFi...
-- 本来の原因
org.hibernate.LazyInitializationException: failed to lazi...
example.cart.domain.Order.lineItemList, no session or ses...
org.hibernate.collection.AbstractPersistentCollection.th...
--途中省略
org.apache.velocity.Template.merge(Template.java:254)
--途中省略
org.springframework.web.servlet.DispatcherServlet.render...
--途中省略
org.springframework.web.servlet.FrameworkServlet.doGet(F...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
javax.servlet.http.HttpServlet.service(HttpServlet.java:...
org.springframework.web.filter.CharacterEncodingFilter.d...
org.springframework.web.filter.OncePerRequestFilter.doFi...
}}
どうやらビューでコレクションの要素であるLineItemを遅延初...
Hinbernateのsessionがクローズしていたので例外が発生みたい...
そこで、ネット"Spring Hibernate Lazy initialize error" を...
- [[とあるITエンジニアの業務手帖>http://d.hatena.ne.jp/ge...
に同様のケースが報告されていました。
解決策としては、''Hibernateマッピングファイルのlazy属性を...
そこで、以下のようにOrderのbagタグにlazy="false"を入れ
#pre{{
<bag name="lineItemList"
cascade="all"
table="T_LINEITEM"
lazy="false">
<key column="orderId" foreign-key="ID"/>
<one-to-many class="example.cart.domain.LineItem"/>
</bag>
}}
LineItemのmany-to-oneタグにも同様に
#pre{{
<many-to-one
name="product"
column="productId"
cascade="save-update"
lazy="false"
class="example.cart.domain.Product"/>
}}
としたら、正常に動作するようになりました。
** Hibernateがデフォルトでlazy initializeをtrueにしている...
では、どうしてHibernateがデフォルトでlazy initializeをtru...
それは、パフォーマンスを向上するため不要な初期化をさける...
とするとlazy="false"の設定は、本当の対処方法ではないので...
今度は、"org.hibernate.LazyInitializationException: faile...
#pre{{
Originally Posted by karldmoore
If the association is lazy loaded and the Session has bee...
You either need to eagerly load the association, use some...
extend the Session around the request or reattach the ent...
}}
という回答を見つけました。
どうやら、OpenSessionInViewを使えば、クローズしていたsess...
- [[新・たけぞう瀕死の日記>http://www3.vis.ne.jp/~asaki/p...
にOpenSessionInViewの使い方が出ていました。
また、Spring LIVEの240ページにも同様の説明がでていました。
** 私の解決策 [#z334569d]
OpenSessionInViewには、批判的なコメントも見受けられました。
それは、
- HTTPのセッションで同一のHinbernateのsessionを使用しなく...
- lazy initializeでのflashModeをAUTOにしなくてならない
上記の問題を考え合わせた結果、
- Hibernateマッピングファイルのlazy=falseの部分を元に戻し
- 以下のようにweb.xmlにOpenSessionInViewのフィルターを追...
#pre{{
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.suppor...
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
}}
filterのinit-paramでsingleSessionとflushModeを指定すると...
* コメント [#w7e5aec0]
この記事は、
#vote(おもしろかった[42],そうでもない[0],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc