我看网上的方法 |
|
10分 |
你可以指定OpenSessionInView过滤器只过滤特定URL
|
10分 |
只过滤那些需要用到懒加载的请求,其实大部分请求应该不会用到懒加载吧。
但是你用了spring,session被spring托管了,session的生命周期由spring控制,什么时候关闭session由spring决定, |
这样会耗内存的啊 session一直放在内存里 |
|
懒加载在一对多的问题里很常见的啊 |
|
20分 |
看情况而定,看你内存如果足够大就把lazyy设为false好了,你说的有死循环这个得注意思,不是所有的实体类都要写上关联关系,把一些复杂点的关联直接去掉。我一般只配多对一,不配一对多或多对多。这样就避免了查一个实体查询所有子实体的可能,大大提高了查询速度与效率,如果需要用到子实体的地方则另多一个HQL写查询。opensession这个很多人都在用,这个我个人认为主要的作用的于事务,你可以把你所在关于增删改的URL配上这个OPENSESSION,其他的查询什么的不用配上他。
|
谢谢 你这句话 我一般只配多对一,不配一对多或多对多 你的意思是指你只在多的一方配置吗 不在一的一方配置 不配置双向关联 只配置单项关联???? |
|
20分 |
是的单项并只在多方配。这样配了就无法全用HQL实现你的查询的所以有必要时也要用到hibernate的SQL查询功能。虽然麻类点,不过在性能上有大大的提升 |
还是不是很明白呢 到底是单方在多的一方配 还是在双方 多的一方和一的一方都要配置呢 |
|
20分 |
OpenSessionInView是个致命的东西,别用,直接join查询解决
|
OpenSessionInView确实很消耗内存啊 那怎么JOIN解决啊 |
|
20分 |
像你说的这种情况,完全可以用hql join 连接查询解决。 可以换成hql连接查询 : |