我正在使用 eclipse hibernate 插件中内置的逆向工程功能为每个表生成 dao 和 hbm.xml 文件。
它做得很好,但是当我尝试使用生成的对象时,我得到一个无法在 JNDI 中找到 SessionFactory 错误。
我看到一个帖子建议当您在 hibernate.cfg.xml 文件中命名您的 SessionFactory 时会发生这种情况,所以我删除了名称标签,但我仍然收到相同的错误。
这是我的 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 插件来实现这一点。
更改生成的代码不会真正帮助我,因为我需要在某些时候继续重新生成它,所以如果有人能解释为什么/如何发生这种情况以及我能做些什么,我将不胜感激
谢谢
乔纳森