以下代码无提示无法更新数据库。这里没有要报告的错误消息。好像是行“sessionFactory.getCurrentSession()。saveOrUpdate(sn);” (在片段的底部)被忽略了。我做错了什么?
public String getSerialNumber(String id) {
log.debug("--------------------------------------------------------------------------------------------Looking for Serial number counter named: " + id);
SerialNumber sn = (SerialNumber) sessionFactory.getCurrentSession().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(1);
log.debug("-----------------------------------------" + sn.toString());
sessionFactory.getCurrentSession().save(sn);
log.debug("--------------------------------------------------------------------------------------------Right after SAVE call. This is id --> " + id);
return "1";
}
sn.setValue(sn.getValue()+1);
log.debug("--update---------------------------------" + sn.toString());
log.debug("--update---------------------------------" + sn.getValue());
sessionFactory.getCurrentSession().saveOrUpdate(sn);
log.debug("--update---------------------------------" + sn.getValue());
log.debug("--update------------------------------------------------------------------------------------Right after SAVE call. This is id --> " + id);
return sn.getValue().toString();
}
答案 0 :(得分:0)
我认为你应该制作一个新对象。复制旧对象中的字段并执行saveorupdate(新对象)
答案 1 :(得分:0)
我认为您的问题是您的更改未提交到数据库。您需要提交事务或关闭会话。
这是一个简单的事务提交
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
// your changes
tx.commit(); // or you can rollback on exceptions