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 java.sql.Connection;
34
35 import org.hibernate.engine.SessionFactoryImplementor;
36
37
43 public class SessionFactoryImpl implements SessionFactory {
44
45 public void closeSession(Session session) throws ORMException {
46 if (!PropsValues.SPRING_HIBERNATE_SESSION_DELEGATED) {
47 session.close();
48 }
49 }
50
51 public Dialect getDialect() throws ORMException {
52 return new DialectImpl(_sessionFactoryImplementor.getDialect());
53 }
54
55 public SessionFactoryImplementor getSessionFactoryImplementor() {
56 return _sessionFactoryImplementor;
57 }
58
59 public Session openNewSession(Connection connection) throws ORMException {
60 Session session = new SessionImpl(
61 _sessionFactoryImplementor.openSession(connection));
62
63 return session;
64 }
65
66 public Session openSession() throws ORMException {
67 org.hibernate.Session session = null;
68
69 if (PropsValues.SPRING_HIBERNATE_SESSION_DELEGATED) {
70 session = _sessionFactoryImplementor.getCurrentSession();
71 }
72 else {
73 session = _sessionFactoryImplementor.openSession();
74 }
75
76 if (_log.isDebugEnabled()) {
77 LiferayClassicSession classicSession =
78 (LiferayClassicSession)session;
79
80 org.hibernate.impl.SessionImpl sessionImpl =
81 (org.hibernate.impl.SessionImpl)
82 classicSession.getHibernateClassicSession();
83
84 _log.debug(
85 "Session is using connection release mode " +
86 sessionImpl.getConnectionReleaseMode());
87 }
88
89 return new SessionImpl(session);
90 }
91
92 public void setSessionFactoryImplementor(
93 SessionFactoryImplementor sessionFactoryImplementor) {
94
95 _sessionFactoryImplementor = sessionFactoryImplementor;
96 }
97
98 private static Log _log = LogFactoryUtil.getLog(SessionFactoryImpl.class);
99
100 private SessionFactoryImplementor _sessionFactoryImplementor;
101
102 }