【发布时间】:2019-01-21 15:52:14
【问题描述】:
我正在尝试在我的 spring-boot 项目中配置休眠。
我有 application.properties 文件
spring.datasource.url=jdbc:mysql:url?useSSL=false
spring.datasource.username=name
spring.datasource.password=password
hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql:url
hibernate.connection.username = name
hibernate.connection.password = password
hibernate.c3p0.min_size=5
hibernate.c3p0.max_size=20
hibernate.c3p0.timeout=1800
hibernate.c3p0.max_statements=50
hibernate.dialect=org.hibernate.dialect.MySQLDialect
以及在UserDAO类中注册用户的方法:
public void registerUser(User u){
Session session = factory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(u);
tx.commit();
} catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
} finally {
session.close();
}
System.out.println("yay all done");
}
但是我收到错误:
> Caused by: org.hibernate.service.spi.ServiceException: Unable to
> create requested service
> [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:84)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:474)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:85)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:689)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> com.groups.data.UserDAO.<init>(UserDAO.java:18) ~[classes/:na] ... 52
> common frames omitted Caused by: org.hibernate.HibernateException:
> Access to DialectResolutionInfo cannot be null when
> 'hibernate.dialect' not set at
> org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] at
> org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
> ~[hibernate-core-5.3.2.Final.jar:5.3.2.Final] ... 66 common frames
> omitted
我已经根据需要配置了方言,我什至尝试创建好的旧 hibernate.cfg.xml 文件,但错误仍然存在(它甚至似乎忽略了该文件)。
为什么会发生?从字面上看,昨天它没有问题。今天我尝试创建 cfg 文件,但它停止工作(已删除)。
我尝试配置休眠的次数越多,它似乎越是激怒使用它的任何人并且无法使其工作。
这可能是什么问题?
感谢您的帮助!
【问题讨论】: