У меня есть приложение Swing, которое начинает запрашивать у пользователя параметры подключения, поскольку каждый пользователь может совершать ошибки. Я хочу знать, как лучше всего справляться с ошибками при попытке подключения, т.е. с неправильным URL-адресом
. ЧтоЯ получил кнопку, которая отправляет dbType, user, pass и url на карту, а затем я получаю EntityManagerFactory, который работает с целым приложением, как это:
emf = Persistence.createEntityManagerFactory("persistenceUnit", connectionProperties);
, однако занимает почти1 минута, чтобы сказать мне
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
- Могу ли я манипулировать Hibernate, чтобы быстрее ответить на тайм-аут?
- Должен ли я изменить способ использования entityManagerFactory?
РЕДАКТИРОВАТЬ: у меня есть класс Connector, все, что он делает, это позволяет графическому интерфейсу отправлять ему параметры, а затем позволяет моему DAO получить экземпляр этого класса для получения EntityManagerFactory.Это все мои свойства соединения, графический интерфейс изменяет диалект в зависимости от выбранной БД ::1019*
connectionProperties.put("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect"); connectionProperties.put("hibernate.connection.driver_class", "oracle.jdbc.driver.OracleDriver");
connectionProperties.put("hibernate.connection.url", userSettings.get("url", ""));
connectionProperties.put("hibernate.connection.username", userSettings.get("username", ""));
connectionProperties.put("hibernate.connection.password", userSettings.get("password", ""));
, и этот метод предоставляет EntityManager тому, кто в нем нуждается:
protected EntityManager getEntityManager() {
if (em == null) {<br>
em = Connector.getInstance().getEmf().createEntityManager();<br>
return em;
} else {
return em;
}
}