我使用内置在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撑着实现这一目标。
更改生成的代码不会真正帮助我,因为我需要保持在某些点进行再生,所以如果任何人都可以解释为什么/这是怎么发生的,什么我可以做这件事我会很感激
谢谢
乔纳森