我想知道上面提到的两种hibernate方法sessionfactory类的方法之间的概念差异(如果有简单示例的话)。
前者打开正常(有状态)会话,而后者(可能不足为奇)打开 无状态会话 。
根据Javadoc,无状态会话为:
面向命令的API,用于对数据库执行批量操作。 无状态会话不会实现第一级缓存,也不会与任何第二级缓存交互,也不会实现事务后写或自动脏检查,也不会将操作级联到关联的实例。无状态会话将忽略集合。通过无状态会话执行的操作会绕过Hibernate的事件模型和拦截器。由于缺少一级缓存,无状态会话很容易受到数据别名的影响。 对于某些类型的事务,无状态会话的执行速度可能比有状态会话的执行速度稍快。
面向命令的API,用于对数据库执行批量操作。
无状态会话不会实现第一级缓存,也不会与任何第二级缓存交互,也不会实现事务后写或自动脏检查,也不会将操作级联到关联的实例。无状态会话将忽略集合。通过无状态会话执行的操作会绕过Hibernate的事件模型和拦截器。由于缺少一级缓存,无状态会话很容易受到数据别名的影响。
对于某些类型的事务,无状态会话的执行速度可能比有状态会话的执行速度稍快。