【问题标题】:Arriving JSON entity is being incorrectly mapped in Spring Controller's method signature到达的 JSON 实体在 Spring Controller 的方法签名中被错误地映射
【发布时间】:2014-09-23 14:50:33
【问题描述】:

我正在传递 json 对象。除 Timestamp 之外的所有属性均已正确设置。 Entity 的时间戳属性设置为 1970 年 ...smth。如何解决?

@RequestMapping(value = "/addProduct", method = RequestMethod.POST, consumes = "application/json")
    @ResponseBody
    public Product addProduct(Model model, @RequestBody Product product, BindingResult result){
        cService = (ProductService) context.getBean("productService");
        cService.addProduct(product);
       return product;
    }

json 输入:

{"name": "ag","dateTimeStart": 1411568760,"dateTimeEnd": 1412100000}

产品实体:

@Table(name = "product")
@Entity
public class Product implements Serializable {
    @Id
    @Column(name = "product")
    private int product;

@Column(name = "name")
    @Basic
    @NotEmpty
    private String name;

@Column(name = "date_time_start")
    @Basic
    private Timestamp dateTimeStart;
@Column(name = "date_time_end")
    @Basic
    private Timestamp dateTimeEnd;
}

向数据库添加记录:

name ag
dateTimeStart 1970-01-17 10:06:08
dateTimeEnd 1970-01-17 10:15:00

更新 我正在使用 MySQL。我传递了 unix 纪元时间戳,并希望它能够正确存储在数据库中。

【问题讨论】:

  • 如果您不坚持使用花哨的映射 API 而是自己编写代码来映射它,那么您在几个小时前就已经完成了。
  • 为什么Spring无法完成如此琐碎的任务?解决此问题的最快方法是什么?

标签: java json spring rest spring-mvc


【解决方案1】:

您需要为您的 JSON 映射器添加一个注释,指示他通过时间戳映射日期。

【讨论】:

  • 请提供示例
猜你喜欢
  • 2018-11-19
  • 2015-11-24
  • 2016-07-19
  • 2012-12-30
  • 1970-01-01
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
相关资源
最近更新 更多