我刚刚开始学习Hibernate,但基于我在手册中所做的阅读,下面的代码似乎是使用自动提交,因为没有显式调用commit()。我发现的所有示例here都显示了commit()的用法。由于我刚刚学习,我想得到社区的确认,我正在思考正确的方法。
this.session = HibernateUtil.getSessionFactory().getCurrentSession();
Transaction tx = session.beginTransaction();
session.clear();
entityReturned = (MultipleKeyTable) session.get(MultipleKeyTable.class, entityId);
session.close();
修改
我应该提到hibernate.connection.autocommit
未在配置中定义,我相信默认设置为true。
修改
我错了hibernate.connection.autocommit
默认设置为false。谢谢Apostolos。
答案 0 :(得分:0)
您可以通过Update a
set A.A2 = Amount * R.Rate
from dbo.Amount as A
inner join dbo.Rate R where R.Region = A.region
在休眠时设置自动提交模式
属性
请阅读the configuration documentation
根据您更新的问题,由于您未在配置中指定hibernate.connection.autocommit
,因此未使用autocommit
。你也在制作一个autocommit
,所以你不会看到你的数据库中是否发生了什么。进行一些更改,保存,然后再次检查。
您需要提交交易以保存更改,或在您的房产中定义select query
。