【问题标题】:Which annotate the relationship allow Jackson to better handle the relation ? @Json哪个注释关系可以让杰克逊更好地处理关系? @Json
【发布时间】:2017-06-14 23:48:46
【问题描述】:

哪些注释关系允许杰克逊更好地处理关系,以保存 Click ?如何更改请求:

{ "idBanner": 2, "fullnameClient": "Maria"}

@JsonManagedReference, @JsonBackReference,@JsonIdentityInfo,@JsonIgnore... 工作格式-请求(保存点击):

【问题讨论】:

  • { "idBanner": 1, "fullnameClient": "Maria"} - 这个结构可以接受吗?

标签: json spring spring-mvc jackson spring-data-jpa


【解决方案1】:

@RequestParam 仅用于映射请求参数。例如,它将适用于 POST /sentemail?fullnameClient=vov&idBanner=1 之类的请求

要获取请求正文,您应该使用@RequestBody 注释。

重要通知 我建议不要将模型(实体)用于请求和响应,因为它会增加您的业务逻辑和外部合同 Rest API 之间的耦合。例如,将来您将无法在不更改外部合同的情况下更改模型,反之亦然。

但如果您仍想使用实体作为请求/响应主体,我建议您查看Jackson MixIns。对 Jackson 和 Entity 进行单独的映射会有所帮助。

【讨论】:

  • BannerInfo 不是实体?
  • @Query(value = "插入 Click (fullnameClient, idBanner) VALUES (:fullnameClient, :idBanner)", nativeQuery = true) String sentsaveclick(@Param("fullnameClient") String fullnameClient, @ Param("idBanner") long idBanner);
  • @NewWave 不,这仅用于请求正文。我建议不要将模型(实体)用于请求和响应,因为它会增加您的业务逻辑和外部合同 Rest API 之间的耦合。例如,将来您将无法在不更改外部合同的情况下更改模型,反之亦然
  • @NewWave 我已经用您的服务使用示例更新了答案。如果您仍想使用实体作为请求/响应主体,我建议您查看wiki.fasterxml.com/JacksonMixInAnnotations
  • @NewWave 表示层,这只是关于用户如何查看或传递数据
猜你喜欢
  • 2017-04-20
  • 2013-04-11
  • 2012-07-21
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-18
  • 2016-04-04
相关资源
最近更新 更多