擴充套件的持久化上下文問題

forever1127發表於2009-03-20
普通的一次請求一個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修改過]

相關文章