我的会话正在运行但没有在数据库中保存数据。我应该丢失什么...?
答案 0 :(得分:1)
您尚未打开任何交易,因此更改不会反映在数据库中。
使用SessionFactory.openSession()创建会话时,不会创建任何事务,因此您的操作将在事务上下文之外执行。为了查看您的更改,您必须开始新的交易,或者作为正在进行的交易的一部分执行您的操作。
示例:
Session sess = factory.openSession();
Transaction tx;
try {
tx = sess.beginTransaction();
//do some work
...
tx.commit();
}
catch (Exception e) {
if (tx!=null) tx.rollback();
throw e;
}
finally {
sess.close();
}
使用Transaction保存对象或在当前方案中对配置文件进行以下更改:
<property name="connection.autocommit">true</property>