解决spring boot jpa查询,语句正确,返回为空问题

Posted 久曲健

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决spring boot jpa查询,语句正确,返回为空问题相关的知识,希望对你有一定的参考价值。

JPA(Hibernate),拥有很强大的能力,极大简化DAO层的开发

Spring Boot实现的是一站式全包,但是数据库是比较特殊的存在,在开发时可以使用Embedded数据库如DerBy等,但是实际环境下,都会把数据库分离到另一台专用服务器,在连接的时候,可能会出现和开发时不一样的各种BUG

 

 

 调用查询接口,结果如下:

[
    {},
    {},
    {}
]

在调用它的时候会返回null

原因有2

1.传进去的参数可能不正确

需要我们debug或输出,细细查看

2.查询字符串有中文

原因可能是字符集的锅,在windows上的mysql数据库默认使用UTF-8,而linux上通过apt安装的MySQL默认是latin
application.properties文件database 的 url后面加上?useUnicode=true&characterEncoding=utf-8声明,此次连接使用utf-8字符集

spring.datasource.url=jdbc:mysql://localhost:3306/students?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8

再来查询:

 

 

 

参考文章:

https://www.jianshu.com/p/d001a62ecdaa




以上是关于解决spring boot jpa查询,语句正确,返回为空问题的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 之 使用JPA对数据进行复杂条件的查询

Spring Boot中的JPA @query中没有传递参数[重复]

如何使用 jpa/spring-boot 正确应用类似 PrePersist 的逻辑

spring boot系列spring boot 配置spring data jpa (查询方法)

Spring Boot-------JPA基础及查询规则

使用 Spring Boot 框架对基于 Spring JPA 的 DAO 进行分层的正确方法