hibernate在增删改的时候需要加事务,为什么查询时不用加事务呢?

来源:百度知道 编辑:UC知道 时间:2024/06/16 03:56:28
hibernate在增删改的时候需要加事务,为什么查询时不用加事务呢?
在Hibernate中, Session打开的时候,就会自动conn.setAutoCommit(false),不像一般的JDBC,默认都是true,所以你最后不写 commit也没有关系,由于Hibernate已经把AutoCommit给关掉了,所以用Hibernate的时候,你在程序中不写Transaction的话,数据库根本就没有反应。

那在查询的时候,同样的,如果不写事务提交,语句也不会被执行,对吗?

你所看到的数据库没反映并不是说数据库没有进行任何的更改

而是数据同步的问题

就像你同时打开两个超作数据库的窗口

在其中一个插入数据,不commit,在另外的窗口就查询不出来

但是在插入窗口是可以查询出来的

hibernate就像是你开的第二个窗口

当然楼上说的很对不修改数据库的数据是不会存在数据不同步的说法的。

这不是hibernate本身的问题哦
建议你看下数据库的知识哦

因为查询的时候不改变数据库啊,只要能查出来看到就可以了,要事物干什么?

事务的意义就在于有变动时,如不合法可以回滚,查询没必要

恩.楼上说的有道理.不过加个log4j进去..有日志文件就行了!