wuwei35531
wuwei35531
2012-10-10 16:51
浏览 211
已采纳

manqy-to-one lazy=false 无法延迟加载而读取大量对象到内存

大家好,请教一个关于延迟加载的问题,
配置文件,
这样的话 我读取数据库的数据,我就要全部加载,这会造成效率降低
但如果不这样的话,在service层调用dao层读取数据库时,由于在session在dao层已经关闭,且没有初始化,当我要读取collection中数据时,service层会抛错lazyinitialexception
或者就在dao层完成对collection的初始化,但这样,与lazy无关,效果和false一样

还有一个问题,关于cascade,写成none后,无法删除主表和从表相关记录,我只想这样,删主表时能自动删除从表记录,但删从表不会影响主表,请问这cascade该用何属性值

谢谢

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • jinnianshilongnian
    jinnianshilongnian 2012-10-10 16:57
    已采纳

    1、service层会抛错lazyinitialexception 考虑OpenSessionInView

    2、删主表时能自动删除从表记录,但删从表不会影响主表,请问这cascade该用何属性值
    这应该在one-to-many 端设置cascade 或者在数据库端设置外键的 on delete cascade

    点赞 评论
  • u011144154
    u011144154 2012-10-10 18:07

    第一个问题有两种解决办法
    1、OpenSessionInView
    2、相应加上一个VO(view object)对象,把持久化对应转化成相应的VO对象再把VO带到页面中显示。

    点赞 评论

相关推荐