Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/SessionHolder.java @ 308:084995dd1c9c
Added a session holder to hold hibernate sessions.
flys-artifacts/trunk@1689 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 14 Apr 2011 12:08:47 +0000 |
parents | |
children | e91873b8b937 |
comparison
equal
deleted
inserted
replaced
307:84f8462790cb | 308:084995dd1c9c |
---|---|
1 package de.intevation.flys.artifacts.model; | |
2 | |
3 import org.apache.log4j.Logger; | |
4 | |
5 import org.hibernate.Session; | |
6 import org.hibernate.SessionFactory; | |
7 | |
8 import de.intevation.flys.backend.SessionFactoryProvider; | |
9 | |
10 public class SessionHolder | |
11 { | |
12 private static Logger logger = | |
13 Logger.getLogger(SessionHolder.class); | |
14 | |
15 public static final ThreadLocal<Session> HOLDER = | |
16 new ThreadLocal<Session>() { | |
17 protected Session initialValue() { | |
18 return create(); | |
19 } | |
20 }; | |
21 | |
22 private SessionHolder() { | |
23 } | |
24 | |
25 public synchronized static Session create() { | |
26 logger.debug("create"); | |
27 SessionFactory sessionFactory = | |
28 SessionFactoryProvider.createSessionFactory(); | |
29 return sessionFactory.openSession(); | |
30 } | |
31 | |
32 public static Session acquire() { | |
33 logger.debug("acquire"); | |
34 Session session = create(); | |
35 HOLDER.set(session); | |
36 return session; | |
37 } | |
38 | |
39 public static void release() { | |
40 logger.debug("release"); | |
41 HOLDER.remove(); | |
42 } | |
43 } | |
44 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |