Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с програмной конфигурайией Hibernate 
:(
    Опции темы
H4nter
Дата 11.7.2009, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Всем доброго дня!
Возникла такая проблема. Так как я использую H2 базу данных, то url коннекта является абсолютным, и его необходимо формировать программно. Поэтому часть конфигурации Hibernate я храню в XML а url задаю в программе

Вот конфигурация 
Код

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
         <!--<property name="connection.url">jdbc:h2:file:D:\Projects\Hibernate (samples)\database\base</property>-->
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"/>
        <property name="hibernate.connection.Charset">cp1251</property>
        <property name="hibernate.connection.CharacterEncoding">cp1251</property>
        <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
        <!--<property name="hibernate.connection.Useunicode">true</property>-->
        <!-- DB schema will be updated if needed -->
        <property name="hbm2ddl.auto">update</property>
        <property name="current_session_context_class">thread</property>
        <mapping class="classes.Actor"/>
        <mapping class="classes.Cast"/>
        <mapping class="classes.Video"/>
    </session-factory>
</hibernate-configuration>


В программе создаю сессию так

Код

AnnotationConfiguration annotation = new AnnotationConfiguration();
annotation.configure("hibernate.cfg.xml");
annotation.setProperty("connection.url","jdbc:h2:file:D:\\Projects\\Hibernate (samples)\\database\\base");
SessionFactory factory =   annotation.buildSessionFactory();



Но при таком подходе возникает следующая ошибка
Код

SEVERE: could not complete schema update
java.lang.UnsupportedOperationException: The user must supply a JDBC connection
    at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:30)
    at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:27)
    at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:127)
    at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1300)
    at classes.HibernateUtil.<clinit>(HibernateUtil.java:51)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:87)



Не понимаю в чем моя ошибка, судя документации Hibernate метод setProperty служит как раз для того, чтобы программно задать нужные параметры конфигурации, в альтернативу XML. 
Теперь, если раскоментировать строку в XML 
Код

 <!--<property name="connection.url">jdbc:h2:file:D:\Projects\Hibernate (samples)\database\base</property>-->



А код переписать так

Код

AnnotationConfiguration annotation = new AnnotationConfiguration();
annotation.configure("hibernate.cfg.xml");
SessionFactory factory =   annotation.buildSessionFactory();

то все будет работать. Может кто-то сталкивался с подобной проблемой?

Это сообщение отредактировал(а) H4nter - 11.7.2009, 15:26
PM ICQ Jabber   Вверх
Старовъръ
Дата 11.7.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Так ты сначала устанавливай свойство, а потом вызывай configure().

Это сообщение отредактировал(а) Старовъръ - 11.7.2009, 17:44
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.