session是在save一个对象的时候还是flush时发出insert等语句啊
展开全部
session flush方法主要做了两件事:清理缓存;执行sql.
session在什么情况下执行flush:默认在事务提交时;显示的调用flush;在执行查询前,如:iterate.
调用save后,只是将对象纳入到了session的管理,不会发出insert语句,如没有主键会根据主键生成策略生成主键,把脱管或瞬态对象变为持久态对象.
调用flush,hibernate会清理缓存,执行sql,默认情况下commit操作会先执行flush清理缓存,所以不用显示的调用flush.
session在什么情况下执行flush:默认在事务提交时;显示的调用flush;在执行查询前,如:iterate.
调用save后,只是将对象纳入到了session的管理,不会发出insert语句,如没有主键会根据主键生成策略生成主键,把脱管或瞬态对象变为持久态对象.
调用flush,hibernate会清理缓存,执行sql,默认情况下commit操作会先执行flush清理缓存,所以不用显示的调用flush.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询