hibernate在增删改的时候需要加事务,为什么查询时不用加事务呢?
hibernate在增删改的时候需要加事务,为什么查询时不用加事务呢?在Hibernate中,Session打开的时候,就会自动conn.setAutoCommit(fa...
hibernate在增删改的时候需要加事务,为什么查询时不用加事务呢?
在Hibernate中, Session打开的时候,就会自动conn.setAutoCommit(false),不像一般的JDBC,默认都是true,所以你最后不写 commit也没有关系,由于Hibernate已经把AutoCommit给关掉了,所以用Hibernate的时候,你在程序中不写Transaction的话,数据库根本就没有反应。
那在查询的时候,同样的,如果不写事务提交,语句也不会被执行,对吗? 展开
在Hibernate中, Session打开的时候,就会自动conn.setAutoCommit(false),不像一般的JDBC,默认都是true,所以你最后不写 commit也没有关系,由于Hibernate已经把AutoCommit给关掉了,所以用Hibernate的时候,你在程序中不写Transaction的话,数据库根本就没有反应。
那在查询的时候,同样的,如果不写事务提交,语句也不会被执行,对吗? 展开
展开全部
你所看到的数据库没反映并不是说数据库没有进行任何的更改
而是数据同步的问题
就像你同时打开两个超作数据库的窗口
在其中一个插入数据,不commit,在另外的窗口就查询不出来
但是在插入窗口是可以查询出来的
hibernate就像是你开的第二个窗口
当然楼上说的很对不修改数据库的数据是不会存在数据不同步的说法的。
这不是hibernate本身的问题哦
建议你看下数据库的知识哦
而是数据同步的问题
就像你同时打开两个超作数据库的窗口
在其中一个插入数据,不commit,在另外的窗口就查询不出来
但是在插入窗口是可以查询出来的
hibernate就像是你开的第二个窗口
当然楼上说的很对不修改数据库的数据是不会存在数据不同步的说法的。
这不是hibernate本身的问题哦
建议你看下数据库的知识哦
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恩.楼上说的有道理.不过加个log4j进去..有日志文件就行了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为查询的时候不改变数据库啊,只要能查出来看到就可以了,要事物干什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询