Я использую возможности обратного проектирования, встроенные в плагин eclipse hibernate, для создания файлов dao и hbm.xml для каждой таблицы.
Он делает это довольно хорошо, но когда я пытаюсь использовать сгенерированные объекты, я получаю сообщение «Не удалось найти SessionFactory в ошибке JNDI».
Я видел сообщение, в котором предполагалось, что это происходит, когда вы называете свою SessionFactory в файле hibernate.cfg.xml, поэтому я удалил тег имени, и я все еще получаю ту же ошибку.
Это мой hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">qwerty</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/agilegroup3</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_catalog">agilegroup3</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<mapping resource="generated/Usersroles.hbm.xml" />
<mapping resource="generated/Role.hbm.xml" />
<mapping resource="generated/Logdata.hbm.xml" />
<mapping resource="generated/Logtrigger.hbm.xml" />
<mapping resource="generated/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
Это сгенерированный код, который вызывает исключение
protected SessionFactory getSessionFactory() {
try {
return (SessionFactory) new InitialContext()
.lookup("SessionFactory");
} catch (Exception e) {
log.error("Could not locate SessionFactory in JNDI", e);
throw new IllegalStateException(
"Could not locate SessionFactory in JNDI");
}
}
Я мало что знаю о JNDI, но я думаю, что это своего рода эквивалент поиска в файле конфигурации. Я не хочу использовать JNDI, но я не знаю, как этого добиться с помощью плагина eclipse.
Изменение сгенерированного кода на самом деле мне не поможет, потому что мне нужно будет продолжать его регенерировать в некоторых моментах, поэтому, если кто-нибудь может объяснить, почему/как это происходит и что я могу с этим поделать, я был бы признателен.
Спасибо
Джонатан