hibernate有多少必须使用flush()函数将它发送到数据库?

时间:2013-12-04 15:53:14

标签: hibernate ssh

例如 用户user = new User();角色角色=新角色(“测试”); HashSet mList = new HashSet(); user.setRoles(mList); userDao.save(user); 当userDao调用事务提交时,角色也可以自动保存。然而。用户和角色之间的sql manytomany关系必须在调用session.flush后提交给数据库。我知道内容存储在会话缓存中。但为什么必须提交?这是一种休眠机制?或者我保存错误的方式?

1 个答案:

答案 0 :(得分:0)

刷新会话会强制Hibernate将Session的内存状态与数据库同步(即将更改写入数据库)。默认情况下,Hibernate会自动为您更新更改:

在执行某些查询之前 提交交易时

当您明确使用flush时,Session会在某些情况下提供更精细的控制(获取ID,以控制Session的大小。