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 :

http://dive4elements.wald.intevation.org