繁体   English   中英

Spring 数据 Rest 中是否有用于参数的“预测”?

[英]Is there 'projections' in Spring Data Rest for paremeters?

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

当我实现自己的控制器时,我可以通过以下任一方式为输入(创建/更新)处理自定义“投影”

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

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

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

向实体添加@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 端点设置。
  • 在更新期间,您在 save 之前使用其原始值覆盖更改的值,因此保存实体时它将保留原始值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM