扩展的持久化上下文问题
普通的一次请求一个session的方式,在WEB开发中存在一些问题,比如一个业务会话要经过几个请求,各个请求都对数据库进行插入或更新,如果要保证在一个业务会话中完成所有操作,保证原子性,那么就需要采用扩展的持久化上下文来做.这里想问下关于扩展的持久化上下文的实现机制,是不是一个业务会话就采用一个长JTA事务,否则如果一个请求一个事务的话,那么数据必然会提交到数据库.这样也就是扩展的持久化上下文是依靠JTA事务作为载体来传播的,当 JTA事务结束了,持久化上下文也结束了!不知道这样理解是否正确,请详细解答下!谢谢
另外:
在论坛有个帖子是专门说了关于持久化上下文的
里面利用hibernate作为持久化提供者.通过以下设置
@PersistenceContext(type=PersistenceContextType.EXTENDE,
propertites = @PersistenceProperty(name="org.hibernate.flushMode", value="MANUAL")
)
这样就可以在一个会话中手动提交了,但是我想问的是这里几个请求之间是通过一个JTA长事务进行的吗?还是一个请求一个!最终导致的不写数据库是不是就是因为事务一直不提交的缘故!
[该贴被forever1127于2009-03-20 10:17修改过]