mybatis-plus LocalDateTime null
时间: 2023-11-02 13:00:58 浏览: 65
在使用mybatis-plus时,出现LocalDateTime字段查询出来为null的情况,可能有以下解决办法:
1. 确保数据库表中对应的日期字段类型为DATETIME,与Java实体类字段类型LocalDateTime匹配。
2. 检查实体类中的注解是否正确。确保日期字段添加了@TableField注解,并指定了对应的数据库字段名,例如:@TableField(value = "数据库字段")。
3. 检查是否正确配置了mybatis-plus的自动填充功能。如果使用了自动填充功能,确保已经在配置文件中正确配置了自动填充的处理器,并在实体类中标注了对应的注解。
4. 检查查询语句是否正确。确保使用了正确的查询语句,并且查询的字段与实体类字段匹配。
5. 如果以上方法都没有解决问题,可以尝试更新mybatis-plus版本或查看相关文档、社区等资源,了解是否有其他用户遇到过类似的问题,并找到解决办法。
请根据具体情况逐一排查上述可能的原因,并进行相应的处理。
相关问题
mybatis-plus使用jdk8的LocalDateTime 查询时报错
mybatis-plus在使用jdk8的LocalDateTime查询时,需要添加一个配置项。在mybatis-plus的配置文件中添加以下配置:
```yaml
mybatis-plus:
configuration:
# 查询返回null值时,不会映射到实体类上
map-underscore-to-camel-case: true
# 配置 LocalDateTime 和 Date 的序列化和反序列化方式
# 使用 jdk8 的时间类型,需要配置
# 下面两个配置可以根据自己的需要进行配置
# LocalDateTime 序列化方式
# 可选值:java.util.Date、java.sql.Date
# 默认值:java.util.Date
# type-handle: java.sql.Date
type-handlers-package: com.baomidou.mybatisplus.extension.handlers
```
在以上配置中,需要注意的是 `type-handlers-package` 配置项。它指定了mybatis-plus的类型处理器包路径,其中包含有针对jdk8的LocalDateTime类型的处理器。
另外,如果在实体类中使用了jdk8的LocalDateTime类型,需要在对应的mapper.xml文件中,将数据库中的datetime类型字段映射为LocalDateTime类型,例如:
```xml
<resultMap id="BaseResultMap" type="com.example.entity.User">
<result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"
javaType="java.time.LocalDateTime"/>
<result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP"
javaType="java.time.LocalDateTime"/>
</resultMap>
<select id="getUserById" resultMap="BaseResultMap">
select id, name, age, gmt_create, gmt_modified from user where id = #{id}
</select>
```
这样就可以在mybatis-plus中使用jdk8的LocalDateTime类型进行查询了。
mybatis-plus时间段查询
在Mybatis-Plus中,你可以使用不同的方式实现时间段查询。其中,常用的方式有两种。
方式一是使用`between`方法。你可以通过创建`LocalDateTime`类型的开始时间和结束时间,并使用`between`方法将其作为查询条件。例如:
```java
LocalDateTime startTime = LocalDateTime.parse("2022-01-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTime = LocalDateTime.parse("2022-01-31 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.between("create_time", startTime, endTime);
List<User> userList = userMapper.selectList(queryWrapper);
```
这样就可以查询出在指定时间段内的用户列表。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [mybatis-plus时间段查询的几种方式](https://blog.csdn.net/lzq2357639195/article/details/129935117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [MyBatis-Plus联表查询(Mybatis-Plus-Join)](https://blog.csdn.net/weixin_43847283/article/details/125822614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]