方言没有进入休眠状态

Gee*_*eek 4 hibernate dialect

我正在使用Hibernate 3和MySQL5.5.

我是hibernate的新手,我得到以下例外

Exception in thread "main" org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
    at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
Run Code Online (Sandbox Code Playgroud)

我在hibernate.cfg.xml文件中设置了Dialect属性.我尝试了很多组合

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> 
<property name="DIALECT">org.hibernate.dialect.MySQL5Dialect</property>
Run Code Online (Sandbox Code Playgroud)

什么是实际的属性名称?Hibernate.dialect还是只有方言?什么可能的财产价值?

我正在添加更多信息

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
Run Code Online (Sandbox Code Playgroud)

如下面的答案所示.

我甚至没有构建任何代码只是尝试创建简单的配置:

Configuration cfg = new Configuration().addClass(Employee.class);
sessionFactory = cfg.buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

下面是实际的配置文件

<?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.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.url">jdbc:mysql://localhost/test</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root1234</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">create</property>
    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>
    <property name="current_session_context_class">thread</property>
    <!-- Mapping files will go here.... -->
  </session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)

我怀疑没有找到hibernate.cfg.xml?我把它放在同一个包中,Employee.class的源代码就在那里.实际上移动这个文件导致相同的错误,所以它实际上没有找到:-(在哪里保留它?这是一个独立的测试程序:-(

Rya*_*art 6

您的第一行或第二行应该有效.第二种方式,只是"方言"是Hibernate参考中显示的方式.如果您仍然收到该错误,则表示您可能还有其他问题.你是如何构建SessionFactory的?你确定它找到你的hibernate.cfg.xml吗?

编辑:根据您的更新,您没有告诉Hibernate从配置文件配置自己.您正在构建自己的配置并使用它.你需要选择一个或另一个.要么以编程方式执行,要么通过XML执行.


Cap*_*row 5

我也遇到了同样的问题早些时候我的代码是:

private final static SessionFactory factory = new Configuration()
        .configure().buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

现在我把它改成了

private final static SessionFactory factory = new Configuration()
        .configure("hibernate.cfg.xml").buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)

并且错误消失了.我认为默认它只查找hibernate.properties文件.