我是一個初學者.
我建了一個classes表和一個students表,表示班級和學生,其中學生里面有一個外鍵關(guān)聯(lián)到班級表.
然后學生類里面建了一個classes的屬性,
用session取出學生后,如果關(guān)閉session的話,就無法讀取到學生類里的classes值,沒有關(guān)閉就能讀取到.
請問這個session會不會影響到其他用戶的訪問呢?
就是說如果有兩個用戶并行操作數(shù)據(jù)庫的話,一個用戶的session不關(guān)閉影不影響另一個用戶呢?
因為session由spring來管理,很安全,不會出現(xiàn)這個種并發(fā)問題.
如果只是使用了Hibernate的話,那得注意了.你在servlet中直接創(chuàng)建session就可能出現(xiàn)并發(fā)問題,因為session不是線程安全的,而servlet是多線程的.
這時可以使用ThreadLocal來解決這個問題.
希望對你有所幫助!
我建了一個classes表和一個students表,表示班級和學生,其中學生里面有一個外鍵關(guān)聯(lián)到班級表.
然后學生類里面建了一個classes的屬性,
用session取出學生后,如果關(guān)閉session的話,就無法讀取到學生類里的classes值,沒有關(guān)閉就能讀取到.
請問這個session會不會影響到其他用戶的訪問呢?
就是說如果有兩個用戶并行操作數(shù)據(jù)庫的話,一個用戶的session不關(guān)閉影不影響另一個用戶呢?
J2EE中最大的一個觀念就是分層..
session是持久層的東東.不可竄到別的層..
你的這個問題其實就是延遲加載的問題.
從理論的角度講,最好是用一個就關(guān)一個.防止資源消耗.
但由于hibernate中的延遲加載,所以出現(xiàn)了你的關(guān)閉session的話,就無法讀取到學生類里的classes值問題.
這個問題可以用Hibernate.initialize()來解決.也可就使用opensessionview的方式.spring中提供了這樣的filter
不知道這在使用中有沒有使用spring.用了就比較方便,也不會出現(xiàn)你所說的
引用
一個用戶的session不關(guān)閉影不影響另一個用戶
因為session由spring來管理,很安全,不會出現(xiàn)這個種并發(fā)問題.
如果只是使用了Hibernate的話,那得注意了.你在servlet中直接創(chuàng)建session就可能出現(xiàn)并發(fā)問題,因為session不是線程安全的,而servlet是多線程的.
這時可以使用ThreadLocal來解決這個問題.
希望對你有所幫助!