jpa中时间戳格式应该用哪种类型

遇到个bug,数据库时间存储用了datetime,但是下面的java jpa代码,查询回来,却只有日期。

 

复制代码
        String innerSql = getInnerQuery(departmentId, keyword, type, startDate, endDate);

        SQLQuery query = manager.createNativeQuery(innerSql).unwrap(SQLQuery.class);
        if (PublicUtils.isNotEmpty(departmentId)) {
            query.setParameter("departmentId", departmentId);
        }
        if (StringUtils.isNotEmpty(type)) {
            query.setParameter("typeParam", Integer.valueOf(type));
        }
        if (StringUtils.isNotEmpty(keyword)) {
            query.setParameter("keyword", keyword);
        }
        if (startDate != null && endDate != null) {
            query.setParameter("startDate", startDate);
            query.setParameter("endDate", endDate);
        }
        query.addScalar("noticeId", StandardBasicTypes.STRING);
        query.addScalar("title", StandardBasicTypes.STRING);
        query.addScalar("type", StandardBasicTypes.INTEGER);
        query.addScalar("createUserId", StandardBasicTypes.STRING);
        query.addScalar("createTime", StandardBasicTypes.TIMESTAMP);
        query.addScalar("departmentId", StandardBasicTypes.STRING);
        query.addScalar("userId", StandardBasicTypes.STRING);

        query.setResultTransformer(new MyBasicTransformerAdapter());

        query.setFirstResult(startIndex);
        query.setMaxResults(pageSize);
        List<NoticePageListVO> items = query.list();
复制代码

中的

query.addScalar("createTime", StandardBasicTypes.DATE);

这边要改成
query.addScalar("createTime", StandardBasicTypes.TIMESTAMP);

 

注意:改成TIME也不行,一定要是TIMESTAMP

 




posted @   三国梦回  阅读(6440)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示