Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
AppFuseSupport




JSPWiki v2.2.33

[RSS]


Hide Menu

GettingHibernateSession


Difference between current version and current version:

At line 1 added 43 lines.
* How do I get hold of the Hibernate session in my DAO?
;:''The DAO layer has the Hibernate sessionFactory injected (made available) to it through Spring and this entry in applicationContext-hibernate.xml:
{{{
<property name="sessionFactory"><ref local="sessionFactory"/></property>
}}}
So to access the Hibernate session from within your DAO, place a method like this in your DAO:
{{{
Session session = SessionFactoryUtils.getSession(getSessionFactory(), false);
}}}
* How do I get hold of the Hibernate session in my View code?
;:''To get hold of the Session in the view code, you need to lookup the SessionFactory defined in the applicationContext-hibernate.xml:
{{{
private void createApplicationContext() {
if (ctx == null) {
ctx =
WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
}
}
public net.sf.hibernate.Session getCurrentHibernateSession() {
createApplicationContext();
SessionFactory sessionFactory = (SessionFactory)ctx.getBean("sessionFactory");
SessionHolder sessionHolder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory);
net.sf.hibernate.Session currentSession = null;
Transaction currentTransaction = null;
if (sessionHolder!=null) {
currentSession = sessionHolder.getSession();
currentTransaction = sessionHolder.getTransaction();
}
return currentSession;
}
}}}

Back to GettingHibernateSession, or to the Page History.