Spring Data Rest中是否有用于参数的“投影”?

问题描述 投票:2回答:1

SDR中的投影非常适合控制json输出。但是输入,REST调用中的参数呢?

[当我实现自己的控制器时,我可以通过任一方法来为输入(创建/更新)定制一个'投影'

  1. 创建与完整实体不同的自定义DTO
  2. 或者我可以只使用@JsonView并在进入的过程中忽略某些字段

这两种方法都不适用于SDR,因为您没有编写控制器。这是怎么做的?

java spring-boot spring-data-rest
1个回答
0
投票

反映评论部分讨论的问题:

向实体添加@Postload方法:

@PostLoad
public void postLoad() {
    ... store the values of the un-updateable fields into transient fields with @JsonIgnore
}

@JsonIgnore
@Transient
private String originalValue1;

@JsonIgnore
@Transient
private String originalValue2;

创建@HandleBeforeSave事件处理程序。在更新过程中调用它,但在创建过程中不调用。

将存储的值复制到此处理程序中的原始字段。

  • 在创建期间不会调用事件处理程序,可以通过标准SDR端点设置所有字段。
  • 在更新期间,您用其原始值保存之前]覆盖了更改的值,因此保存实体时,它将保留原始值。
© www.soinside.com 2019 - 2024. All rights reserved.