Если я ничего не устанавливаю программно, а просто вызываю Configuration configuration = new Configuration().configure();
и использую hibernate.properties (как показано ниже), все работает просто отлично. Как только я пытаюсь указать имя пользователя, пароль и URL-адрес подключения программно, я получаю странные исключения, намекающие на файл hbm. Что мне не хватает?
Это работает
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://myEC2/mCruiseOnServerDB?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
hsqldb.write_delay_millis=0
shutdown=true
hibernate.connection.username=root
hibernate.connection.password=mypwd
hibernate.connection.pool_size=2
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.c3p0.idle_test_period=300
hibernate.c3p0.timeout=120
Согласно рекомендации @Kshitij. Делаем смешанный режим.
Hibernate.properties теперь
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hsqldb.write_delay_millis=0
shutdown=true
hibernate.connection.pool_size=2
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
Кодекс
String connection = "jdbc:mysql://"
+ Globals.DBSERVER
+ "/mCruiseOnServerDB?autoReconnect=true&failOverReadOnly=false&maxReconnects=10";
Configuration configuration = new Configuration()
.setProperty("hibernate.connection.url", connection)
.setProperty("hibernate.connection.username", Globals.DB_USER_NAME)
.setProperty("hibernate.connection.password", Globals.DB_PASSWORD);
configuration.configure();
sessionFactory = configuration
.buildSessionFactory(new ServiceRegistryBuilder()
.buildServiceRegistry());
Исключение
Теперь я получаю это исключение, по одному для каждой записи mapping resource
в моем файле hbm.
11 May 2013 08:46:31,969 1300 [main] FATAL ReadOnlyOperations - Have chosen to ignore this runtime exception java.lang.UnsupportedOperationException: The application must supply JDBC connections, may be fatal, examine this carefully
11 May 2013 08:46:31,969 1300 [main] FATAL ReadOnlyOperations - java.lang.UnsupportedOperationException: The application must supply JDBC connections
Резюме
Если я использую все hibernate.properties
и без кода (без .setProperty в коде), все работает отлично. Если я использую часть hibernate.properties
и код части (сервер, имя пользователя, пароль), я получаю ошибки в hbm для каждого свойства сопоставления.
Мне нужен кто-то, кто поможет мне понять, чего мне не хватает. Это должно быть что-то действительно основное.