hibernate 缓存 和 one-to-one 懒加载问题,帮帮忙

小猫王 发布于 2013/01/14 18:25
阅读 578
收藏 1

@红薯 你好,想跟你请教个问题:

我用的hibernate3,  ssh2框架,页面用的el+ jstl标签取值

1. 比如OSC的问题、评论、回复功能,我通过id查询出问题question,request到页面,  页面用jstl标签的forEach 遍历出  评论 ${question.comments},在页面显示评论信息; ${question.comments.recomments}来遍历评论的回复; 我评论、回复用的 id,pid自关联;

现在有个问题,我提交评论和回复后,不显示内容;只有重启tomcat才能显示; hbm映射文件:

 <hibernate-mapping>
    <class name="com.oschina.model.Question" table="question">
    <cache usage="read-write"/>                                        ......                                                

<set name="comments" inverse="true" cascade="save-update">
       <cache usage="read-write"/>    -     我把这段代码删除,就能立即显示评论内容
            <key>
                <column name="questionid" />
            </key>
            <one-to-many class="com.oschina.model.Comment" />
        </set>

不知道怎么解决,我想是 question,set里存的commentid没更新

2.hibernate    one-to-one, 我用的外关联,不能懒加载;比如我只想查询user  (from User),但与user 一对一关联的对象,hibernate都会发条sql查询语句; 主要是我有张表用了5个one-to-one, 要是查询20条数据,就会发送5*20条,没用的sql语句;

麻烦大家帮忙看看,网上查了很久资料,还是没解决

加载中
0
空杯子
空杯子

1、检查一下,看看你提交评论或者回复后,数据库是否已经有数据了,个人判断,应该是页面缓存的问题,和hibernate无关;

2、使用ORM框架设计实体结构,个人提倡单向关联;如果无法避免级联查找,那就本地语句后再封装实体;

小猫王
小猫王
数据库有数据,我清空浏览器缓存后,也不行,重启tomcat后就能读出来;通过查询数据库返回List就没问题;jstl标签导航遍历就是取不到;谢谢
返回顶部
顶部