我手动创建了我的数据库,然后使用 Hibernate 工具生成了我的 Pojo,DAO。当我创建一个对象并将其持久保存到数据库时,它似乎工作正常
DefinitionT def = new DefinitionT();
def.setSelected(false);
def.setValue(sqlEncode(definition));
def.setWordId(wordT.getId());
definitionTDao.persist(def);
这是我的 persist() 方法
public void persist(Object o)
{
try
{
hSession.persist(o);
hSession.flush();
}
catch (Exception e)
{
hTransaction.rollback();
log.error(e.getMessage());
}
}
当我的线程完成时,数据库将使用新对象进行更新。但是,我注意到如果我在调用persist() 后直接停止程序,数据库将不会更新。事实上,无论我执行多少操作,在线程完成之前似乎都不会在数据库中更新。我认为flush()将休眠缓存中的所有更新推送到数据库中?我错过了什么?我认为这是同一个问题,因为Hibernate 刷新不会更新数据库,但我没有任何 for 循环正在进行。