论坛首页 Java企业应用论坛

Hibernate 一个更新问题的 讨论

浏览 2761 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-06  
一个关于hibernate单向一对一外键关联,级联update的问题。
问题如下:
有member的更新代码
java 代码
  1. public void addClickCount(){
  2. if(this.getStat() == null){
  3. Stat stat = createStat();
  4. stat.setClickCount(1);
  5. }else{
  6. this.getStat().addClickCount();
  7. }
  8. }
Stat的代码
java 代码
  1. public void addClickCount(){
  2. this.setClickCount(this.clickCount + 1);
  3. }
xml 代码
  1. <many-to-one
  2. name="stat"
  3. class="com.teesoo.teaonline.model.sys.Stat"
  4. cascade="save-update"
  5. column="f_stat_id"
  6. />

hibernate代码
java 代码
  1. public Member loadMember(Integer memberId){
  2. Member member = (Member) this.baseDao.get(Member.class, memberId);
  3. member.addClickCount();
  4. return member;
  5. }

我的要求是load一个member,同时stat的一个点击数自增加
以上环境是hbernate+spring

高手们现身把。

我的问题是,上面的代码不会更新stat的状态。
session没有关闭的状态下。
   发表时间:2007-07-06  
试试
this.getStat().addClickCount();
this.setStat(this.getStat());
0 请登录后投票
   发表时间:2007-07-06  
这个member.addClickCount()执行时是不是在事务环境中,如果不在事务中,没有提交,hibernate是不会自动flush出修改的数据的。另外不知道你的createStat()是怎么写的。
0 请登录后投票
   发表时间:2007-07-06  
xianyun 写道
这个member.addClickCount()执行时是不是在事务环境中,如果不在事务中,没有提交,hibernate是不会自动flush出修改的数据的。另外不知道你的createStat()是怎么写的。

真是不好意思,浪费大家的时间了。
项目大了,一些很明显的东西倒是忘记了
我的事情模型是不给更新的,因为方法名有限制。
所以这个问题就是老兄说的对。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics