跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Springboot QueryDSL @QuerydslPredicate 时间参数序列化问题请教
未分類
2 12 月 2020

Springboot QueryDSL @QuerydslPredicate 时间参数序列化问题请教

Springboot QueryDSL @QuerydslPredicate 时间参数序列化问题请教

資深大佬 : NULL2020 11

先上代码:

    @GetMapping("/list")     @ApiOperation("审核列表")     public WebResult list(@QuerydslPredicate(root = Audit.class) Predicate predicate, Pageable pageable) {         return WebResult.success(auditService.searchPage(predicate, pageable));     }  public class Audit {     @Id     private Long id;     private String content;     private Integer type;     private Integer status;     private Integer sd;     private String tag;     private Long userId;      @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")     @JsonSerialize(using = LocalDateTimeSerializer.class)     @JsonDeserialize(using = LocalDateTimeDeserializer.class)     @Convert(converter = Jsr310JpaConverters.LocalDateTimeConverter.class)     private LocalDateTime auditTime;      @Generated(GenerationTime.INSERT)     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")     @JsonSerialize(using = LocalDateTimeSerializer.class)     @JsonDeserialize(using = LocalDateTimeDeserializer.class)     @Convert(converter = Jsr310JpaConverters.LocalDateTimeConverter.class)     private LocalDateTime createAt;      @Generated(GenerationTime.ALWAYS)     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")     @JsonSerialize(using = LocalDateTimeSerializer.class)     @JsonDeserialize(using = LocalDateTimeDeserializer.class)     @Convert(converter = Jsr310JpaConverters.LocalDateTimeConverter.class)     private LocalDateTime updateAt;      public Audit() {     } }  

由于 springboot GET 请求处理时间(LocalDateTime) 参数序列化时,需要在参数前加上 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 的注解,但因为使用 @QuerydslPredicate 无法对实体里面的字段进行单独标注,所以前端请求时无法序列化时间参数,尝试过使用全局方式,也不生效。

有没有朋友使用过 QuerydslPredicate 这种传参方式,如何对里面的时间参数进行序列化?

大佬有話說 (1)

  • 資深大佬 : hantsy

    最近帮朋友一个国内的项目,也是看到一堆类似的东西,

    @JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class

    我实在不明白要这一堆东西,难道用标准的 IOS 时间格式不好?前后端开发人员完全分离开来,自己关注自已的事就好了。

    后端 Spring Boot 不需要任何但处理,Jackson 会自动转换。前端也用标准的 ISO 时间就可以了,各种时间格式化也容易,不管是自定义还是基于 Momentjs 的友好格式。

    呵呵,现在这样一来,相互扯皮时间大大增加。

    对于 @Convert(converter = Jsr310JpaConverters.LocalDateTimeConverter.class), 呵呵,这个是针对 JPA 2.2 ( Java EE8/Jakarta EE 8 ) 以前的标准,现在还在用,就是脱裤子放屁。JPA 2.2 添加支持了 Java 8 DateTime 部分类的支持,常用的 JPA Provider,如 Hibernate 扩展支持的更多时间类,几乎你用到的 jsr310 时间类不用转换。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具