无法为 hibernate 项目创建请求的服务

当我尝试使用 Eclipse 中的 PostgreSQL 使用 Jdbc 配置来运行 Hibernate 示例项目时,出现错误“线程“main”中的异常 org.hibernate.service.spi.ServiceException: 无法创建请求的服务 [org.hibernate.engine. jdbc.env.spi.JdbcEnvironment] “。

即使在搜索类似类型的问题后,我也无法解决此错误。

这是为了使用Hibernate 5.2.17、PostgreSQL 11Jdk 1.8运行新的 hibernate 项目。我尝试使用 Hibernate v4.2.0 运行,但它给出了 jdbc 错误“ClassLoadingException”。

我的 hibernate.cfg.xml 文件:


<!DOCTYPE hibernate-configuration PUBLIC

"-//Hibernate/Hibernate Configuration DTD//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>

    <session-factory>

        <property name="hibernate.connection.driver_class">org.postgres.Driver</property>

        <property name="hibernate.connection.url">jdbc:postgres://localhost:5432/hibernatedb</property>

        <property name="hibernate.connection.username">postgres</property>

        <property name="hibernate.connection.password">password</property>

        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>


        <property name="connection.pool_size">1</property>


        <!-- Disable the second-level cache -->

        <property name="cache.provider_class">org.hibernate.NoCacheProvider</property>


        <!-- Echo all executed SQL to stdout -->

        <property name="show_sql">1</property>


        <!-- Drop and re-create the database schema on startup -->

        <property name="hibernate.hbm2ddl.auto">create</property>


        <!-- Names the annotated entity class -->

        <mapping class="home.practice.hibernate.dto.UserDetails"/>


    </session-factory>


</hibernate-configuration>


我的模型类 ieUserDetails.java


package home.practice.hibernate.dto;


import javax.persistence.Entity;

import javax.persistence.Id;


@Entity

public class UserDetails {


    @Id

    private int userId;

    private String userName;


    public int getUserId() {

        return userId;

    }


慕妹3242003
浏览 86回答 1
1回答

跃然一笑

当您看到带有如下堆栈跟踪的异常时:Caused&nbsp;by:&nbsp;java.lang.ClassNotFoundException:&nbsp;Could&nbsp;not&nbsp;load&nbsp;requested&nbsp;class&nbsp;:&nbsp;org.postgres.Driver &nbsp;&nbsp;&nbsp;&nbsp;[...] &nbsp;&nbsp;&nbsp;&nbsp;at&nbsp;java.lang.Class.forName(Unknown&nbsp;Source) &nbsp;&nbsp;&nbsp;&nbsp;[...]类路径中很可能没有类加载器由于 Class.forName 调用而尝试加载的类。当使用 Class.forName 动态加载类时,该类仅在运行时需要,而不是在编译时需要,并且当不可用时,它会生成此类错误。您的 hibernate.cfg.xml 中有一个拼写错误:<property&nbsp;name="hibernate.connection.driver_class">org.postgres.Driver</property>driver_classClass.forName这是传递给堆栈跟踪中的调用的类;postgres jdbc 驱动程序的正确类名org.postgresql.Driver不是org.postgres.Driver,所以<property&nbsp;name="hibernate.connection.driver_class">org.postgresql.Driver</property>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java