使用注册表和元数据创建会话工厂Hibernate 5.0.7

使用注册表和元数据创建会话工厂Hibernate 5.0.7,hibernate,Hibernate,我已经附上了我的代码,它根本没有创建sessionfactory,请看一看,让我知道我哪里出错了 HibernateUtilities.java package com.yashwanth.HIbernate; import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.hibernate.boot.Metadata; import org.hibernate.boot.Met

我已经附上了我的代码,它根本没有创建sessionfactory,请看一看,让我知道我哪里出错了

HibernateUtilities.java

package com.yashwanth.HIbernate;

import org.hibernate.HibernateException;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HIbernateUtilities {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;

public SessionFactory setUp() throws Exception
{

        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                .configure() // configures settings from hibernate.cfg.xml
                .build();

            sessionFactory = new MetadataSources( registry ).buildMetadata().buildSessionFactory();

        /*catch (Exception e) {
            // The registry would be destroyed by the SessionFactory, but we had trouble building the SessionFactory
            // so destroy it manually.
            StandardServiceRegistryBuilder.destroy( registry );
        }*/
return sessionFactory;
}
}
下面是另一个java类:

package com.yashwanth.HIbernate;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class Program {
public static void main(String[] args) throws HibernateException, Exception
    {
        System.out.println("yashpotu");
        HIbernateUtilities Utility =new HIbernateUtilities();
        SessionFactory sessionFactory=Utility.setUp();

        Session session = sessionFactory.openSession();
        session.beginTransaction();
        User user=new User();
        user.setName("YASH");
        user.setGoal(250);
        session.save(user);
        session.getTransaction().commit();
        session.close();
        sessionFactory.close();
       }

       }

Here is the error:an 23, 2016 1:09:34 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {5.0.7.Final}
Jan 23, 2016 1:09:34 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Jan 23, 2016 1:09:34 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Jan 23, 2016 1:09:35 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
Jan 23, 2016 1:09:35 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
Jan 23, 2016 1:09:35 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306]
Jan 23, 2016 1:09:35 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001001: Connection properties: {user=root, password=****}
Jan 23, 2016 1:09:35 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH10001003: Autocommit mode: false
Jan 23, 2016 1:09:35 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init>
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
Sat Jan 23 13:09:35 EST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Jan 23, 2016 1:09:35 PM org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
Exception in thread "main" org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [org.yashwanth.HIbernate.User]
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
    at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.<init>(AnnotationMetadataSourceProcessorImpl.java:103)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.<init>(MetadataBuildingProcess.java:147)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:141)
    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.boot.MetadataSources.buildMetadata(MetadataSources.java:179)
    at com.yashwanth.HIbernate.HIbernateUtilities.setUp(HIbernateUtilities.java:48)
    at com.yashwanth.HIbernate.Program.main(Program.java:10)
Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.yashwanth.HIbernate.User
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
    ... 9 more
package com.yashwanth.HIbernate;
导入org.hibernate.hibernateeexception;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
公共课程{
公共静态void main(字符串[]args)引发HibernateeException,异常
{
System.out.println(“yashpotu”);
HIbernateUtilities实用程序=新的HIbernateUtilities();
SessionFactory SessionFactory=Utility.setUp();
Session Session=sessionFactory.openSession();
session.beginTransaction();
用户=新用户();
user.setName(“YASH”);
user.setGoal(250);
session.save(用户);
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
以下是错误:一个2016年11月23日下午1:09:34 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{5.0.7.Final}
2016年1月23日下午1:09:34 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2016年1月23日下午1:09:34 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2016年1月23日下午1:09:35 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{5.0.1.Final}
2016年1月23日下午1:09:35 org.hibernate.engine.jdbc.connections.internal.driverManager连接提供MPL配置
警告:HHH10001002:使用Hibernate内置连接池(不用于生产!)
2016年1月23日下午1:09:35 org.hibernate.engine.jdbc.connections.internal.driverManager连接ProviderImpl buildCreator
信息:HHH10001005:在URL[jdbc:mysql://localhost:3306]
2016年1月23日下午1:09:35 org.hibernate.engine.jdbc.connections.internal.driverManager连接ProviderImpl buildCreator
信息:HHH10001001:连接属性:{user=root,password=***}
2016年1月23日下午1:09:35 org.hibernate.engine.jdbc.connections.internal.driverManager连接ProviderImpl buildCreator
信息:HHH10001003:自动提交模式:错误
2016年1月23日下午1:09:35 org.hibernate.engine.jdbc.connections.internal.PooledConnections
信息:HH000115:休眠连接池大小:20(最小值=1)
美国东部时间2016年1月23日星期六13:09:35警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果未设置explicit选项,默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任库。
2016年1月23日下午1:09:35 org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dialogue.mysqldialogue
线程“main”org.hibernate.boot.registry.classloading.spi.ClassLoadingException中出现异常:无法加载类[org.yashwanth.hibernate.User]
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
位于org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.(AnnotationMetadataSourceProcessorImpl.java:103)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1。(MetadataBuildingProcess.java:147)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:141)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
位于org.hibernate.boot.MetadataSources.buildMetadata(MetadataSources.java:179)
位于com.yashwanth.HIbernate.HIbernateUtilities.setUp(HIbernateUtilities.java:48)
位于com.yashwanth.HIbernate.Program.main(Program.java:10)
原因:java.lang.ClassNotFoundException:无法加载请求的类:org.yashwanth.HIbernate.User
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:348)
位于org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
... 9更多

提前谢谢,请告诉我哪里出了问题

好吧,消息说:“无法加载请求的类:org.yashwanth.HIbernate.User”。类路径中是否有该类?线程“main”org.hibernate.boot.registry.classloading.spi.ClassLoadingException:无法加载类[org.yashwanth.hibernate.User]是的,加载类本身时出现问题。您发布的两个类位于包
com.yashwanth.hibernate
中。但是Hibernate正在包
org.yashwanth.Hibernate
中寻找类用户。组织!=通用域名格式。
try {
        Configuration configuration = new Configuration().configure();

        ServiceRegistry registry = new StandardServiceRegistryBuilder()
                .applySettings(configuration.getProperties()).build();
       return new MetadataSources( registry ).buildMetadata().buildSessionFactory();
    } catch (Throwable cause) {
        System.err.println("Initial SessionFactory creation failed: " + cause);
        throw new ExceptionInInitializerError(cause);
    }