关于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个回答

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

libitum_1
libitum_1 回复zhao3154075: 暂时我还没有发现只需要配置就可以处理的 如果你有的话,可以通知下,我也学学!
接近 5 年之前 回复
zhao3154075
trigger-11 有没有比写hql优雅的方式
接近 5 年之前 回复
zhao3154075
trigger-11 谢谢回答,我知道自己写业务逻辑当然ok,但我想更加偷懒
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问