Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate5.0.1和Java8;未找到提供程序org.hibernate.type.Java8DateTimeTypeContributor_Java_Hibernate_Jpa - Fatal编程技术网

Hibernate5.0.1和Java8;未找到提供程序org.hibernate.type.Java8DateTimeTypeContributor

Hibernate5.0.1和Java8;未找到提供程序org.hibernate.type.Java8DateTimeTypeContributor,java,hibernate,jpa,Java,Hibernate,Jpa,我正在学习冬眠。我下载了hibernate 5.0.1最终版,并将所需和java8文件夹中的所有JAR复制到我的项目中。我在我的系统中使用Java8JDK 我正在尝试执行一个非常基本的程序: public class HibernateTest { public static void main(String[] args){ UserDetails user = new UserDetails(); user.setUserId(1);

我正在学习冬眠。我下载了hibernate 5.0.1最终版,并将所需和java8文件夹中的所有JAR复制到我的项目中。我在我的系统中使用Java8JDK

我正在尝试执行一个非常基本的程序:

  public class HibernateTest {      
    public static void main(String[] args){

        UserDetails user = new UserDetails();
        user.setUserId(1);
        user.setUserName("First User");


        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        Session session = sessionFactory.openSession();

        session.beginTransaction();
        session.save(user);
        session.getTransaction().commit();
        session.close();

    }
}
hibernate配置文件也是非常基本的:


org.postgresql.Driver
jdbc:postgresql://localhost:5432/Training
博士后
密码
1.
org.hibernate.dialogue.PostgreSqlDialogue
线
org.hibernate.cache.internal.NoCacheProvider
真的
更新
结果是:

Exception in thread "main" java.util.ServiceConfigurationError: org.hibernate.boot.model.TypeContributor: Provider org.hibernate.type.Java8DateTimeTypeContributor not found
    at java.util.ServiceLoader.fail(ServiceLoader.java:231)
    at java.util.ServiceLoader.access$300(ServiceLoader.java:181)
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:365)
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:324)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:356)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
    at org.vicky.hibernate.HibernateTest.main(HibernateTest.java:19)

请帮帮我。我在那个包里搜索这个丢失的类文件。但事实并非如此。谢谢您的回答。

您的类路径中缺少hibernate-java8 jar。你可以找到它。

我刚刚把它修好了。我在我的系统中安装了多个EclipseIDE。我发现我在这个项目中使用的是JDK1.7。我已经将它改为JDK1.8,现在一切都很顺利(Windows->preferences->java->installed JRE->Add并指向JDK1.8目录)

但是有人能解释一下eclipse是如何工作的吗? 我已经在我的系统中安装了Java8RE。这可能就是为什么这个特定的eclipse期望Java 8相关的类,但是即使它们被添加到项目中也没有检测到它们,因为它的“installed JREs”设置指向JDK 1.7。不知道eclipse到底发生了什么


感谢您对subodh和danizmax的回答。晚上好

从构建路径库中删除Java8JAR文件

您在类路径中添加了哪些jar文件?您好,我已经添加了hibernate 5.0.1版本Final.zip文件中的所有jar文件。我还将hibernate-java8-5.0.1.Final.jar文件添加到项目中。在build path/configure build path中添加java8,并确保java安装的jre默认值为1.8.Hi danizmax,我已经将hibernate-java8-5.0.1.Final.jar文件添加到项目中。我现在可以在这个jar文件中找到org.hibernate.type.Java8DateTimeTypeContributor。但我仍然得到这个例外。我无法理解为什么编译器没有检测到这个类。您在标题中写了“Hibernate 5.0.1和Java 8”,因此我们假设您的eclipse项目设置为Java 8。我的回答是正确的,尽管您在Java7中又错过了另一个配置。你可以接受我的回答,或者至少通过投票支持我们的贡献来感谢我们。这就是网站的运作方式。我的意图是永远不会让你感到不安。我对你的答案投了更高的票,但可能是因为我的声誉,公众目前看不到这个答案。我在上面的回答中感谢你们两位。如果在我不知情的情况下发生了什么事,请接受我的道歉。您要求我添加一个我已经添加到项目中的jar文件。HibernateRelease5.0.1final.zip文件的java8文件夹包含我在问题中添加的jar文件。我只是添加了我的答案,因为这是一个真正解决了我的问题,也会帮助其他人的答案;确保人们投票。无论如何,这是一个好问题,我敢打赌您还包括了其他一些需要Java8特定功能的HibernateJAR。是的,一些jar必须依赖于这个java8特定的类。eclipse无法检测该类,即使它被添加到项目中,因为“已安装的JRE”是JDK1.7。我刚刚在hibernate 5.0.1版本Final.zip文件的“required”和“java8”文件夹中添加了JAR,该文件是我从hibernate网站下载的。以及postgreSQL jdbc驱动程序。就这样。明天我会进一步调查。晚安