JPA查询一条数据某个字段为空,但是数据库却又其值

Waekessi 2017-12-13 11:34:12
前台传入chatform数据


//存储数据库
chatService.addChat(chatForm);


然后在同一方法中进行查询

Chat chat = chatService.findByChatId(id);

然后奇葩的事情出现了

createTime的值位null!!!!
我看了一下数据库,震惊

数据库里面createTime字段部位空
然后我不停止服务,在另一个函数中写了一个测试方法

@PostMapping("/search")
public ResultVO<Map<String,String>> search(@RequestParam(value = "id") String id){

Chat chat = chatService.findByChatId(id);

Map<String,String> map = new HashMap<>();

map.put("time",chat.getCreateTime().toString());

return ResultVOUtil.success(map);

}

发现查询结果,createtime不为null
但是在之前的方法中,进行请求,createtime的值就是为空,不知道是jpa的bug还是什么
求大神作答
...全文
1900 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong_19890208 2017-12-14
  • 打赏
  • 举报
回复
引用 7 楼 u013591119 的回复:
不是,我已经找到问题了,是缓存的问题

chatService.addChat(chatForm);
之后,在同一个方法里执行

Chat chat = chatService.findByChatId(id);
它不会去数据库查询,而是直接加载缓存 而createTime这个数据是数据库自动生成的 所以 大问题来了,百度了两个小时都没解决,咋进行缓存的关闭啊 求大神
创建时间你可以用datetime类型,然后自己插入数据
Waekessi 2017-12-13
  • 打赏
  • 举报
回复
不是,我已经找到问题了,是缓存的问题

chatService.addChat(chatForm);
之后,在同一个方法里执行

Chat chat = chatService.findByChatId(id);
它不会去数据库查询,而是直接加载缓存 而createTime这个数据是数据库自动生成的 所以 大问题来了,百度了两个小时都没解决,咋进行缓存的关闭啊 求大神
yannsPeng 2017-12-13
  • 打赏
  • 举报
回复
有可能是事务的原因。
yannsPeng 2017-12-13
  • 打赏
  • 举报
回复
老哥啊,同一个事物还没有commit,
vswen5 2017-12-13
  • 打赏
  • 举报
回复
说明查出来的数据在塞进你对象的时候 发现格式不对 给你塞个空 而没有报错 别用了错都不爆 这么辣鸡的框架
Waekessi 2017-12-13
  • 打赏
  • 举报
回复
笔误,服务器是date
Waekessi 2017-12-13
  • 打赏
  • 举报
回复
数据库里面是timestamp 服务器端是data
dong_19890208 2017-12-13
  • 打赏
  • 举报
回复
楼主,createTime 数据库字段是什么数据类型?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧