SaveOrUpdate没有响应。为什么?

时间:2012-07-26 18:31:53

标签: java hibernate spring-mvc

@SuppressWarnings("unchecked")
//@Override
public SerialNumber getCounter(String id) {
    Session cs = sessionFactory.getCurrentSession();     
    SerialNumber sn = (SerialNumber) cs.get(SerialNumber.class, id);
    if (sn == null) {
        //TODO Throw an error (maybe). The code below creates a new Serial number counter
        log.debug("NO Serial Number for: " + id + " was found.");
        sn = new SerialNumber();
        sn.setSerialNumberId(id);
        sn.setName("Unspecified");
        sn.setValue(0);
    }
    sn.setValue(sn.getValue()+1);
    cs.saveOrUpdate(sn);
    cs.close();
    return sn;
}

此行被忽略并且不向数据库保存任何内容(MySQL):

cs.saveOrUpdate(sn);

为什么有任何想法?我没有任何线索。

我绝不是Java大师,但即使是Java大师也无法弄明白。任何帮助将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:2)

尝试

Transaction tx = null;
try{
 tx = session.beginTransaction();
   //your code to save
 tx.commit();
 }catch(Exception ex){
     tx.rollBack();
     ex.printstacktrace(); //log to see if there is any other error
 }

答案 1 :(得分:2)

可能会延迟会话的更新。尝试:

cs.flush();

如果这是您的问题,您可以在属性中将其设置为自动:

<prop key="org.hibernate.FlushMode">AUTO</prop>