2009-03-18 2 views
3

Существует способ установить JNDI-имя SessionFactory в файле hibernate.cfg.xml. Однако, если я не использую JNDI явно для получения моего SessionFactory вообще в своем веб-приложении, не может ли я дать ему имя JNDI?Hibernate: Нельзя ли привязать SessionFactory к имени JNDI?

Причина, по которой я спрашиваю, заключается в том, что если я не настроил свое имя JNDI, мои тесты JUnit будут работать нормально. Но если я установить его лишь указанием «имя» в SessionFactory тег в hibernate.cfg.xml, он будет первым сказать:

WARN [WebApp:SessionFactoryObjectFactory.addInstance] Could not bind factory to JNDI 

и сгенерирует исключение:

javax.naming.NoInitialContextException:Need to specify class name in environment or system property, or as an appletparameter, or in an application resource file: 

Так мне нужно удалить JNDI-имя из моего hibernate.cfg.xml, но не знаю, вызовет ли это другие проблемы или нет?

ответ

3

Я бы сказал, что было бы хорошо в большинстве случаев, но вы могли бы также рассмотреть возможность использования другого hibernate.cfg.xm для ваших тестов JUnit.

+0

+1 Это то, что я сделал. –

+0

Как вы это делаете? Как вы указываете в Java использовать другой файл сопоставления для модульных тестов? –

+1

Вы можете либо изменить путь к классу, либо включить один файл конфигурации, либо вы можете создать SessionFactory в Java с определенным конфигурационным файлом с Configuration.configure («hibernate-test.cfg.xml»). –

0

Если вы удалите имя атрибута со значением = "sessionFactory" в файле конфигурации , все будет в порядке.

Смежные вопросы