標準Web應用程序中是否曾經有過一種情況,即將一個EntityManager或Session作爲參數傳遞給DAO調用,即findPersonByName(String name, Session session)
?還是應該在實施中抽象出會議的開幕和閉幕?使用DAO模式,您是否曾將EntityManager或Session作爲參數公開?
3
A
回答
7
更好的方法是初始化或以其他方式將0123注入SessionFactory
。然後,你可以做這樣的事情:
public abstract class AbstractHibernateDao<T extends Object>
implements AbstractDao<T> {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
public void save(T t) { getSession().save(t); }
public void update(T t) { getSession().update(t); }
...
}
,而無需通過Session
一切都過的地方。
0
不,不應該使用它,但服務層可能會。假設你有兩種不同的方法(在不同的DAO中)需要封裝在同一個事務中(提交/回滾),你可能想要/必須使用同一個連接對象。
相關問題
- 1. 您是否曾將C++ RValue引用參數標記爲const
- 2. 休眠,使用Session或EntityManager
- 3. 您是否將super()調用作爲構造函數的開始?
- 4. EntityManager的是DAO類空
- 5. 使用DAO模式
- 6. 您是否將您的Perl應用程序開發爲CPAN模塊?
- 7. 您是否曾經能夠使用Office Communicator 2007 R2創建BOT
- 8. 您是否曾經使用if let語句中指定的值
- 9. 使用EntityManager從EJB訪問Hibernate Session
- 10. 您是否可以將函數作爲內聯函數的參數傳遞?
- 11. 使用多個數據庫(DAO模式)
- 12. 您是否應該使用與DAO同步
- 13. 是否可以使用functor作爲std :: function的模板參數?
- 14. 將dao模式轉換爲EJB3 JPA?
- 15. 是否可以將Blocks或Procs作爲參數發送到Sidekiq?
- 16. 是否有包裝同步API將方法公開爲異步的模式?
- 17. 將接口屬性作爲接口公開的模式
- 18. 您是否曾經在自然ID上創建關係或使用內部ID並模擬自然ID關係?
- 19. maven是否將scmUrl作爲屬性公開?
- 20. 您是否在類中使用數據成員或公共屬性?
- 21. 是否可以將字符串作爲模板參數?
- 22. 您的ViewModel應該將XAML元素作爲屬性公開嗎?
- 23. 您可以將Azure表存儲IQueryable(table.CreateQuery())作爲POCO公開嗎?
- 24. 我們是否應該使用彈簧單例作爲DAO
- 25. webservice公開了一種將對象作爲參數的方法
- 26. 作爲ASMX公開的WCF服務將不接受參數
- 27. 將數學公式作爲參數傳遞(numpy)
- 28. 將「正常」參數變爲模板化參數是否正確?
- 29. 設計模式 - 使用DAO?或者使用其他類型的設計模式?
- 30. 使用DAO作爲命令
是的,我打算使用`EntityManagerFactory`。只是想知道是否曾經有過一個「EntityManager」被初始化並在服務外傳遞的情況。另外,通過`getSession()`方法,當前會話的何時/何時初始化? – jtgameover 2009-03-01 11:04:27