Maven项目无框架使用JPA报错'hibernate.dialect' not set

用到的依赖

<dependencies>
	 <!-- junit -->
	 <dependency>
	     <groupId>junit</groupId>
	     <artifactId>junit</artifactId>
	     <version>4.12</version>
	     <scope>test</scope>
	 </dependency>
	 <!-- log4j -->
	 <dependency>
	     <groupId>log4j</groupId>
	     <artifactId>log4j</artifactId>
	     <version>1.2.17</version>
	 </dependency>
	 <!-- mysql connector -->
	 <dependency>
	     <groupId>mysql</groupId>
	     <artifactId>mysql-connector-java</artifactId>
	     <version>8.0.19</version>
	 </dependency>
	 <!-- hibernate entitymanager -->
	 <dependency>
	     <groupId>org.hibernate</groupId>
	     <artifactId>hibernate-entitymanager</artifactId>
	     <version>5.4.10.Final</version>
	 </dependency>
	 <!-- hibernate c3p0 -->
	 <dependency>
	     <groupId>org.hibernate</groupId>
	     <artifactId>hibernate-c3p0</artifactId>
	     <version>5.4.10.Final</version>
	 </dependency>
</dependencies>

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <persistence-unit name="jpaUnit" transaction-type="RESOURCE_LOCAL">
	    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
	    <properties>
	        <property name="javax.persistence.jdbc.user" value="root"/>
	        <property name="javax.persistence.jdbc.password" value="root"/>
	        <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
	        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa?useSSL=false&amp;serverTimezone=utc"/>
	        <property name="hibernate.show_sql" value="true"/>
	        <property name="hibernate.hbm2ddl.auto" value="update"/>
	    </properties>
	</persistence-unit>
</persistence>

环境

mysql8

解决

在网上搜了很多,有些人说是数据库连接的密码等写错了,我仔细确认了数据库连接配置,没有问题;还有人说是要配置方言,也有人说配置方言了也没用,我抱着试一试的心态在persistence中配置了一下方言

<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

程序依然报错,但这一次的报错的原因很清楚,英文翻译过来大概是serverTimezone没有utc什么什么的,我就把serverTimezone改为如下,并且删除了上面添加的方言配置,所以归根结底和第一次报错说的’hibernate.dialect’ not set没有任何关系

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpa?useSSL=false&amp;serverTimezone=Asia/Shanghai"/>

程序正常运行
具体是为什么我也不清楚,之前每次连接数据库serverTimezone=utc都没有问题,不知道为什么在这个项目里就报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值