从文档中,您链接到:
特别是,无状态会话不会实现第一级缓存,也不会与任何第二级或查询缓存进行交互。它不实现事务后写或自动脏检查。使用无状态会话执行的操作永远不会级联到关联的实例。无状态会话将忽略集合。通过无状态会话执行的操作会绕过Hibernate的事件模型和拦截器。由于缺少一级缓存,无状态会话很容易受到数据混叠影响。
这些是一些重要的限制!
如果您要创建的对象或所做的修改是对单个对象的标量字段的简单更改,那么我认为与批处理常规会话相比,无状态会话没有任何缺点。但是,一旦您想做一些更复杂的操作(例如,操作一个对象或从第一个对象层叠而来的另一个对象的集合值属性),那么无状态会话将比帮助有所障碍。
更一般地,如果批处理的普通会话所提供的性能足够好,那么无状态会话就是不必要的复杂性。它看起来像普通的会话,但是它具有不同的API和不同的语义,这是引发错误的一种方式。
当然,在某些情况下,它是适当的工具,但我认为这些是例外,而不是规则。



