1
22
23 package com.liferay.portal.dao.orm.hibernate;
24
25 import com.liferay.portal.kernel.dao.orm.Dialect;
26 import com.liferay.portal.kernel.dao.orm.ORMException;
27 import com.liferay.portal.kernel.dao.orm.Session;
28 import com.liferay.portal.kernel.dao.orm.SessionFactory;
29 import com.liferay.portal.kernel.log.Log;
30 import com.liferay.portal.kernel.log.LogFactoryUtil;
31 import com.liferay.portal.util.PropsValues;
32
33 import org.hibernate.engine.SessionFactoryImplementor;
34
35
41 public class SessionFactoryImpl implements SessionFactory {
42
43 public void closeSession(Session session) throws ORMException {
44 if (!PropsValues.SPRING_HIBERNATE_SESSION_DELEGATED) {
45 session.close();
46 }
47 }
48
49 public Dialect getDialect() throws ORMException {
50 return new DialectImpl(_sessionFactoryImplementor.getDialect());
51 }
52
53 public SessionFactoryImplementor getSessionFactoryImplementor() {
54 return _sessionFactoryImplementor;
55 }
56
57 public Session openSession() throws ORMException {
58 org.hibernate.Session session = null;
59
60 if (PropsValues.SPRING_HIBERNATE_SESSION_DELEGATED) {
61 session = _sessionFactoryImplementor.getCurrentSession();
62 }
63 else {
64 session = _sessionFactoryImplementor.openSession();
65 }
66
67 if (_log.isDebugEnabled()) {
68 LiferayClassicSession classicSession =
69 (LiferayClassicSession)session;
70
71 org.hibernate.impl.SessionImpl sessionImpl =
72 (org.hibernate.impl.SessionImpl)
73 classicSession.getHibernateClassicSession();
74
75 _log.debug(
76 "Session is using connection release mode " +
77 sessionImpl.getConnectionReleaseMode());
78 }
79
80 return new SessionImpl(session);
81 }
82
83 public void setSessionFactoryImplementor(
84 SessionFactoryImplementor sessionFactoryImplementor) {
85
86 _sessionFactoryImplementor = sessionFactoryImplementor;
87 }
88
89 private static Log _log = LogFactoryUtil.getLog(SessionFactoryImpl.class);
90
91 private SessionFactoryImplementor _sessionFactoryImplementor;
92
93 }