flush()操作的是Hibernate的缓存,将Hibernate中缓存的数据提交到DB层,如果这时候DB处于事物当中,那是DB的事情,与Hibernate无关了,commit()是告诉DB我这个事物结束了,你可以将我刚刚提交给你的数据进行更新.