// Path: src/main/java/org/sfm/benchmark/db/jmh/ConnectionParam.java
// @State(Scope.Benchmark)
// public class ConnectionParam {
// 
// 	@Param(value="MOCK")
// 	public DbTarget db;
// 
// 	public DataSource dataSource;
// 	
// 	@Setup
// 	public void init() throws SQLException, NamingException {
// 		dataSource = ConnectionHelper.getDataSource(db);
// 		
// 		if (db != DbTarget.MOCK) {
// 			Connection conn = dataSource.getConnection();
// 			try {
// 				ConnectionHelper.createTableAndInsertData(conn);
// 			} finally {
// 				conn.close();
// 			}
// 		}
// 	}
// 	
// 	public Connection getConnection() throws SQLException {
// 		return dataSource.getConnection();
// 	}
// }
// 
// Path: src/main/java/org/sfm/benchmark/db/jmh/DbTarget.java
// public enum DbTarget {
// 	MOCK {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.MYSQL;
// 		}
// 	}, HSQLDB {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.HSQLDB;
// 		}
// 	}, MYSQL {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.MYSQL;
// 		}
// 	};
// 
// 	public abstract SQLDialect getSqlDialect();
// }


import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.service.ServiceRegistry;
import org.sfm.benchmark.db.jmh.ConnectionParam;
import org.sfm.benchmark.db.jmh.DbTarget;
package org.sfm.benchmark.db.hibernate;


@SuppressWarnings("deprecation")
public class HibernateHelper {

	
// Path: src/main/java/org/sfm/benchmark/db/jmh/ConnectionParam.java
// @State(Scope.Benchmark)
// public class ConnectionParam {
// 
// 	@Param(value="MOCK")
// 	public DbTarget db;
// 
// 	public DataSource dataSource;
// 	
// 	@Setup
// 	public void init() throws SQLException, NamingException {
// 		dataSource = ConnectionHelper.getDataSource(db);
// 		
// 		if (db != DbTarget.MOCK) {
// 			Connection conn = dataSource.getConnection();
// 			try {
// 				ConnectionHelper.createTableAndInsertData(conn);
// 			} finally {
// 				conn.close();
// 			}
// 		}
// 	}
// 	
// 	public Connection getConnection() throws SQLException {
// 		return dataSource.getConnection();
// 	}
// }
// 
// Path: src/main/java/org/sfm/benchmark/db/jmh/DbTarget.java
// public enum DbTarget {
// 	MOCK {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.MYSQL;
// 		}
// 	}, HSQLDB {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.HSQLDB;
// 		}
// 	}, MYSQL {
// 		@Override
// 		public SQLDialect getSqlDialect() {
// 			return SQLDialect.MYSQL;
// 		}
// 	};
// 
// 	public abstract SQLDialect getSqlDialect();
// }


// Path: src/main/java/org/sfm/benchmark/db/hibernate/HibernateHelper.java
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.Environment;
import org.hibernate.service.ServiceRegistry;
import org.sfm.benchmark.db.jmh.ConnectionParam;
import org.sfm.benchmark.db.jmh.DbTarget;

package org.sfm.benchmark.db.hibernate;


@SuppressWarnings("deprecation")
public class HibernateHelper {

	
	public static SessionFactory getSessionFactory(boolean enableCache, ConnectionParam conn)  {