gpt4 book ai didi

java - 在 Spring Boot 中忽略 REST 参数中的实体字段

转载 作者:行者123 更新时间:2023-11-30 07:05:52 27 4
gpt4 key购买 nike

我有一个在数据库中管理的实体和一个 Controller ,该 Controller 在该实体上提供一些 CRUD 操作。

使用 REST API 的前端不应更改实体中的某些字段。我只是想忽略这个不可更改字段的值并使用数据库中的值。

到目前为止,我是在 Controller 的方法中执行此操作的,该方法是在我对实体进行进一步操作之前调用的。但这种方法对我来说感觉很糟糕,所以我寻找其他解决方案。

我该怎么做才能将此预处理移出我的 Controller ?

最佳答案

这是我能想到的解决方案:

您可以创建一个 View 模型类,例如 MyObjVm,它具有 MyObj 实体类的字段子集,这些字段是可更改的。在 Controller 中,您可以像这样使用 MyObjVm 对象:

@RequestMapping(//...)
public String method(Model model, @RequestBody MyObjVm myObjVm) {
// ...
// populate the MyObj entity from myObjVm so that only the changeable fields are consumed and assigned.
}

上面显示了如何从前端使用 JSON。

如果您想执行相反的操作,只需返回 MyObjVm,其中的字段将由 MyObj 的可更改字段填充。您的前端需要有一个相应的 JS 对象来使用返回的 JSON。

What can I do to move this preprocessing out of my Controller?

因此,需要从 Controller 中取出的处理几乎就是 View 模型和实体之间的转换。您可以创建一个专用于执行此操作的辅助类方法。

关于java - 在 Spring Boot 中忽略 REST 参数中的实体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40135213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com