Я создал собственный класс поставщика фабрики сеансов. Где я устанавливаю свойства спящего режима и аннотированные классы. У меня более 100 аннотированных классов. В то время как я являюсь логином для приложения, требуется много времени для загрузки фабрики сеансов. Есть ли способ преодолеть эту проблему или я ошибаюсь? Пожалуйста, помогите мне.Hibernate Session Factory занимает много времени, чтобы загрузить
public class SessionFatoryProvider {
public void setNewSessionFactory(String uname,String password,HttpSession hs){
String jdbcUrl = Constants.DB_URL+Constants.DB;
java.util.Properties hibernateProperties = new java.util.Properties();
hibernateProperties.setProperty("hibernate.connection.driverClassNames", "com.mysql.jdbc.Driver");
hibernateProperties.setProperty("hibernate.connection.url", jdbcUrl);
hibernateProperties.setProperty("hibernate.connection.username", uname);
hibernateProperties.setProperty("hibernate.connection.password", password);
hibernateProperties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
hibernateProperties.setProperty("hibernate.show_sql", "true");
hibernateProperties.setProperty("hibernate.hbm2ddl.auto","none");
hibernateProperties.setProperty("current_session_context_class","org.hibernate.context.spi.AbstractCurrentSessionContext");
hibernateProperties.setProperty("hibernate.cache.use_second_level_cache","false");
hibernateProperties.setProperty("hibernate.cache.use_query_cache","false");
LocalSessionFactoryBean slfb = new LocalSessionFactoryBean();
slfb.setHibernateProperties(hibernateProperties);
slfb.setPackagesToScan("com.orb.bean"); //My entity class package
try {
slfb.afterPropertiesSet();
} catch (Exception e) {
e.printStackTrace();
}
SessionFactory mySessionFactory = slfb.getObject();
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(mySessionFactory);
hs.setAttribute("HibernateTransactionManager", transactionManager); //Here I am setting hibernate transaction manager in session
}
}
Это нормально, но мне нужно войти в приложение через пользователя системной базы данных и поддерживать разные подключения для каждого пользователя. – Balkrushn
Мы столкнулись с аналогичной проблемой с приложением, которое настаивало на использовании пользователей базы данных. В итоге нам пришлось использовать стандартный JDBC. Мы создали собственный пул соединений для обработки различных подключений. Это, конечно, делает пул соединений очень неэффективным, так как теперь у вас есть одно или несколько подключений для каждого пользователя, а не для совместного использования пула соединений. –