2017-03-16 146 views

回答

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(); 
} 

要么使用事务保存对象或在当前情况下使您的配置文件中的以下变化:

<property name="connection.autocommit">true</property> 
+0

Thank you ..It works @mehmood memon – superman

+0

@superman不客气!请将答案标记为正确并加注。 –