美文网首页
Spring Boot JPA 自动生成SQL的时间格式问题

Spring Boot JPA 自动生成SQL的时间格式问题

作者: zhuhuix | 来源:发表于2020-03-20 21:17 被阅读0次

问题如下:

1、JPA自动生成的SQL语句:

 select wxvisit0_.id as id1_34_, wxvisit0_.create_time as create_t2_34_, 
wxvisit0_.deleted as deleted3_34_, wxvisit0_.from_company as 
from_com4_34_, wxvisit0_.from_phone as from_pho5_34_, 
wxvisit0_.from_user as from_use6_34_, wxvisit0_.from_user_number as 
from_use7_34_, wxvisit0_.from_user_vehicle as from_use8_34_, 
wxvisit0_.open_id as open_id9_34_, wxvisit0_.remarks as 
remarks10_34_, wxvisit0_.update_time as update_11_34_, 
wxvisit0_.visit_company as visit_c12_34_, 
wxvisit0_.visit_company_index as visit_c13_34_, wxvisit0_.visit_photo as 
visit_p14_34_, wxvisit0_.visit_remarks as visit_r15_34_, 
wxvisit0_.visit_time as visit_t16_34_, wxvisit0_.visit_type as 
visit_t17_34_, wxvisit0_.visit_user as visit_u18_34_, 
wxvisit0_.visit_user_phone as visit_u19_34_ from wx_visit wxvisit0_ 
where (wxvisit0_.create_time between '02/29/2020 00:00:00.000' and 
'03/06/2020 23:59:59.000') order by wxvisit0_.create_time desc 

2、mysql表中create_time字段数据如下:

「技术经验」Spring Boot JPA 自动生成SQL的时间格式问题

1与2的格式不一致,导致SQL查询无记录

「技术经验」Spring Boot JPA 自动生成SQL的时间格式问题

分析解决

1、查看mysql版本

「技术经验」Spring Boot JPA 自动生成SQL的时间格式问题

2、查看Springboot 项目maven依赖:未设定mysql driver版本号

<!--Mysql依赖包-->    
    <dependency>            
<groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <scope>runtime</scope>        </dependency>        <!-- druid数据源驱动 -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>druid-spring-boot-starter</artifactId>            <version>${druid.version}</version>        </dependency>
「技术经验」Spring Boot JPA 自动生成SQL的时间格式问题

3、添加mysql driver版本号

         
<!--Mysql依赖包-->      
<dependency>            
  <groupId>mysql</groupId>           
  <artifactId>mysql-connector-java</artifactId>      
   <version>5.1.47</version>           
   <scope>runtime</scope>      
</dependency>

4、查看JPA自动生成的SQL语句:格式正确,问题解决

select wxvisit0_.id as id1_34_, wxvisit0_.create_time as create_t2_34_, 
wxvisit0_.deleted as deleted3_34_, wxvisit0_.from_company as 
from_com4_34_, wxvisit0_.from_phone as from_pho5_34_, 
wxvisit0_.from_user as from_use6_34_, wxvisit0_.from_user_number as 
from_use7_34_, wxvisit0_.from_user_vehicle as from_use8_34_, 
wxvisit0_.open_id as open_id9_34_, wxvisit0_.remarks as 
remarks10_34_, wxvisit0_.update_time as update_11_34_, 
wxvisit0_.visit_company as visit_c12_34_, 
wxvisit0_.visit_company_index as visit_c13_34_, wxvisit0_.visit_photo as 
visit_p14_34_, wxvisit0_.visit_remarks as visit_r15_34_, 
wxvisit0_.visit_time as visit_t16_34_, wxvisit0_.visit_type as 
visit_t17_34_, wxvisit0_.visit_user as visit_u18_34_, 
wxvisit0_.visit_user_phone as visit_u19_34_ from wx_visit wxvisit0_ 
where  (wxvisit0_.create_time between '2020-02-29 00:00:00' and '2020-
03-06 23:59:59') order by wxvisit0_.create_time desc 

碰到的坑

如果将mysql driver 版本设为8.0. x,问题依旧,最终设为5.x版本问题才解决。猜测Spring Boot JPA与mysql 8.0适配仍然有不确定的问题待解决。

相关文章

网友评论

      本文标题:Spring Boot JPA 自动生成SQL的时间格式问题

      本文链接:https://www.haomeiwen.com/subject/ybeqdhtx.html