在Hibernate 3中更新对象无法正常工作

时间:2013-11-11 15:07:05

标签: insert-update hibernate3

Pojo对象:

public class Test {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id")
    private Integer id;

    private String name;
    @Column(columnDefinition="int default 100")
    private int number; 
    .....getter and setter........
}

后端行动:

@ResponseBody
@RequestMapping(value= "/common/index3")
public String index3(){

    Session session = sessionFactory.getCurrentSession();

    Test t = session.get(Test.class, 1);

    t.setNumber(t.getNumber() - 1);

    System.out.println("invoked");

    session.update(t);

    return "success";
}

网页ajax触发器

$(document).ready(function(){
    for(var i = 0; i < 3; i ++){
        $.post("/common/index3");
    }
}

问题

从客户端我发送了3次请求到后端操作,并且该操作也被正确调用了3次,但是,在数据库中“Number”列仅扣除了1次,在调用3次后,列值变为来自100到99,我不知道为什么它只扣了1次,预期值应该是97,我试着冲洗&amp;清除会话以避免hibernate3缓存问题,有谁知道如何解决这个问题?

谢谢你。

1 个答案:

答案 0 :(得分:0)

从我所看到的,您的交易未被提交到数据库。您应该在与DB通信时使用事务。

开始会话后,使用

开始交易
Transaction tx = session.beginTransaction()

在完成查询后,使用tx.commit()将其提交给数据库。