SpringJPA初学时遇到的一些问题(整理中)

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

我在使用JPA的过程中遇到这个问题,从字面意义上来看,就是JDBC环境错误。出现环境问题报错,多半就是在写代码的过程中,配置文件出了问题,需要着重修改配置文件。
在这里,我是因为第一次使用JPA,不太清楚使用规则,进行配置过程中只看到了一个配置的表面含义

spring.jpa.database-platform=mysql

这里platform实质是指数据库方言,例如我用的是MySQL8.0,则可以写

spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect

另外,从层次关系上来看Spring JPA与Hibernate、Spring Data之间的关系是:
Spring Data <— JPA <— (Hibernate/EclepseLink) <— JDBC <— DB
Spring JPA是Spring对JPA规范的一种实现形式,Hibernate也是JPA的一种实现框架。


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.

在链接数据库的过程中也可能会出现这种问题,这个主要是MYSQL在高版本中强制要求工程师明确写上是否需要进行SSL加密处理。

url=jdbc:mysql://127.0.0.1:3306/yourdatabase?characterEncoding=utf8&useSSL=true

在MYSQL8.0版本中,还要求写上serverTimezone=UTC,强制使用世界标准时间,及

url=jdbc:mysql://127.0.0.1:3306/yourdatabase?characterEncoding=utf8&useSSL=trueserverTimezone=UTC

org.hibernate.hql.internal.ast.QuerySyntaxException: XXXX is not mapped [from XXXX]

is not mapped这个异常的抛出主要有几个方面:
(参考自:https://blog.csdn.net/hbxfyxw/article/details/20468903)

  1. 首先要检查的就是不是表名,这个应该大家都知道,hql语句对大小写很严格,因此请注意大小写;你的hql语句中的from是实体类而不是表名;

  2. 你的hibernate配置文件中没有加入相应的映射文件;

  3. 如果上面两方面检查了都没问题,但是还有错,那就是hql语句有错了,好好检查一下,仔细点,不行就重新写一遍,放到数据库的sql运行窗口下运行一遍,可能就是因为一个空格或者一个引号而报错折腾一两天。因此,请仔细。


Caused by: java.lang.IllegalArgumentException: Not an managed type: class java.lang.Object

@Repository
public interface DeptDao extends JpaRepository{
}

JpaRepository后边缺少指定类型,正确的应该是
@Repository
public interface DeptDao extends JpaRepository<Dept,Long>{
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值