trigger-11 2015-05-19 02:48 采纳率: 0%
浏览 1369

关于hibernate的一个问题

使用hibernate一段时间,用着很爽,但最近碰到性能问题,不知道有没有什么解决方案。
1.如果有两张表Company和Employee,两者有关联这个不需要解释。
2.那么要想使用employee.getCompany()我已知有两种方式:
(1)配置lazy=false,但这样的话如果我只想要employee而不需要company的时候hibernate
也会把conpany查出来放到employee里面,万一employee有很多父表,那查一次
employee就是灾难性的。不过至少session查完就关闭了。
(2) 配置lazy=true,这种方式可以解决上面的问题,但前提是需要配置openSessionInView,
而这种方式也会有瓶颈,比如某些请求会因为网络阻塞等原因session一直开着,这样也会
耗尽连接池。
3.那么问题来了,有没有什么配置方式可以让hibernate在不使用openSessionInView情况下将两者优点结合在一起,即:在查询employee的时候不查询company,查完后关闭session,当我调用employee.getCompany()会再次打开session进行查询,查完后关闭session。我知道在业务逻辑里可以自己写,但这样开发效率不高。我就是想知道有没有什么方法配置一下就可以实现。谢谢!

  • 写回答

1条回答 默认 最新

  • libitum_1 2015-05-19 03:23
    关注

    这个不是还有hql么 写个语句查就可以阿 把只需要的列给出就可以咯 难道我想简单了?

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料