返回HibernateSessionFactory的Hibernate代码在servlet中最好的地方是什么?
我看到很多例子:将db连接放在服务方法中。 Others - 使用类似HibernateUtil(Singleton)的smth返回HibernateSessionFactory。
我不知道在多线程Servlet中使用HibernateUtil是否安全?
答案 0 :(得分:6)
通常,您应该直接使用MVC框架来支持Servlet,但这不是您的问题,我将假设您有充分的理由来实现自己的Servlet。回答......
按此 - https://www.hibernate.org/hib_docs/v3/api/org/hibernate/SessionFactory.html:
实现者必须是线程安全的。
和
SessionFactorys
是不可变的。SessionFactory
的行为由配置时提供的属性控制。这些属性在Environment
上定义。
所以共享SessionFactory
s。
事实上,根据我的经验,您的HibernateUtil方法是更好的方法,因为SessionFactory的创建可能非常昂贵。
答案 1 :(得分:1)
使用Open Session in View模式(请参阅过滤器实现)。