2007-07-06
Hibernate 一个更新问题的 讨论
一个关于hibernate单向一对一外键关联,级联update的问题。
问题如下:
有member的更新代码
Stat的代码
hibernate代码
我的要求是load一个member,同时stat的一个点击数自增加
以上环境是hbernate+spring
高手们现身把。
我的问题是,上面的代码不会更新stat的状态。
session没有关闭的状态下。
问题如下:
有member的更新代码
java 代码
- public void addClickCount(){
- if(this.getStat() == null){
- Stat stat = createStat();
- stat.setClickCount(1);
- }else{
- this.getStat().addClickCount();
- }
- }
java 代码
- public void addClickCount(){
- this.setClickCount(this.clickCount + 1);
- }
xml 代码
- <many-to-one
- name="stat"
- class="com.teesoo.teaonline.model.sys.Stat"
- cascade="save-update"
- column="f_stat_id"
- />
hibernate代码
java 代码
- public Member loadMember(Integer memberId){
- Member member = (Member) this.baseDao.get(Member.class, memberId);
- member.addClickCount();
- return member;
- }
我的要求是load一个member,同时stat的一个点击数自增加
以上环境是hbernate+spring
高手们现身把。
我的问题是,上面的代码不会更新stat的状态。
session没有关闭的状态下。
评论
wuhua
2007-07-06
xianyun 写道
这个member.addClickCount()执行时是不是在事务环境中,如果不在事务中,没有提交,hibernate是不会自动flush出修改的数据的。另外不知道你的createStat()是怎么写的。
真是不好意思,浪费大家的时间了。
项目大了,一些很明显的东西倒是忘记了
我的事情模型是不给更新的,因为方法名有限制。
所以这个问题就是老兄说的对。
xianyun
2007-07-06
这个member.addClickCount()执行时是不是在事务环境中,如果不在事务中,没有提交,hibernate是不会自动flush出修改的数据的。另外不知道你的createStat()是怎么写的。
sorphi
2007-07-06
试试
this.getStat().addClickCount();
this.setStat(this.getStat());
this.getStat().addClickCount();
this.setStat(this.getStat());
- 浏览: 562623 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
我女朋友
共 12 张
共 12 张
最新评论
-
Google产品大全
很全很全很全很全
-- by sheandwei -
说真的UCWEB看奥运真方便
楼下的。话不能这么说。我现在上班开奥运就靠它了,
-- by wuhua -
说真的UCWEB看奥运真方便
傻佬,这也值得说
-- by caohj -
UCWEB使用秘诀
最近发现UCWEB有准备发布新版本了。到时再仔细研究相关的一些特殊用法。
-- by wuhua -
开始进入另外一个领域
自己的水平还很菜啊。要努力学习
-- by wuhua






评论排行榜