我正在尝试通过 REST 将对象保存到我的数据库中。POST 和当我从前端接收 JSON 对象时,来自 json 键的值之一在数组形式中有多个值。
杰森:
{ "supportedId": [ 2, 4, 1, 18592, 18594 ], "reportSubscriptionId": 100 }
我想将每个"supportedId"保存为数据库中自己的 INSERT/唯一条目,并使用"reportSubscriptionId: 100",就像上面的 json 对象一样。
如何遍历数组并正确保存?任何帮助将不胜感激,谢谢!
@RequestMapping(
method = RequestMethod.POST
)
@ResponseBody
public ApplicationUserSubscription createAppSubscription(@RequestBody ApplicationUserSubscription appUser) {
return applicationUserSubscriptionRepository.save(appUser);
@Repository
public interface ApplicationUserSubscriptionRepository extends
JpaRepository<ApplicationUserSubscription, Integer> {}
通过处理输入请求来创建请求类以映射输入和创建实体,如下所示,
实体:
public class ApplicationUserSubscription {
@Id
private Integer supportedId;
private Integer reportSubscriptionId;
//constructor getter setters
}
请求:
class ApplicationUserSubscriptionRequest {
private List<Integer> supportedIds;
private Integer reportSubscriptionId;
//contructor getter setters
}
控制器:
@RequestMapping(method = RequestMethod.POST)
public List<ApplicationUserSubscription> createAppSubscription(@RequestBody ApplicationUserSubscriptionRequest applicationUserSubscriptionRequest) {
List<ApplicationUserSubscription> subscriptions = applicationUserSubscriptionRequest.getSupportedIds().stream()
.map(ele -> new ApplicationUserSubscription(ele, applicationUserSubscriptionRequest.getReportSubscriptionId()))
.collect(Collectors.toList());
return applicationUserSubscriptionRepository.saveAll(subscriptions);
}
存储 库:
@Repository
public interface ApplicationUserSubscriptionRepository extends JpaRepository<ApplicationUserSubscription, Integer> {
}
希望对您有所帮助。