could not initialize proxy - no Session (SSH)
阿新 • • 發佈:2018-11-08
網頁異常資訊:
HTTP Status 500 - org.hibernate.LazyInitializationException: failed to lazily initialize a
collection of role: cn.ssh.wms.domain.Role.permissions, could not initialize proxy - no Session
從上資訊可以看出沒有找到Session代理
由於SSH整合時Session已經交給了Spring來管理-Spring在執行完畢查詢時就會立即將Session關閉,所有當開啟懶載入的查詢去查詢結果集時就會發現找不到Session所以就報錯找不到Session ; 解決方法有兩種:
方法一 : (POJO.hbm.xml)
<!-- 多對多許可權關聯 bag:去除重複元素 name:角色集合名稱 table:資料庫表名 lazy:是否開啟懶載入模式,預設true 解決方案一:將lazy屬性值改為false,關閉懶載入模式即可 --> <bag name="permissions" table="role_permission" lazy="true"> <!-- 外來鍵名稱 --> <key column="role_id"/> <!-- class:關聯實體類的地址 column:資料庫對應的列名 --> <many-to-many class="cn.ssh.wms.domain.Permission" column="permission_id"/> </bag>
方法二 : (web.xml)
<!-- OSIV 在struts2核心過濾器之前配置 --> <filter> <filter-name>OSIV</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OSIV</filter-name> <!-- 攔截所有.action請求 --> <url-pattern>*.action</url-pattern> </filter-mapping>