如何在 Java spring-boot JPA 中保存/发布来自 JSON 键值对的值数组



我正在尝试通过 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> {
}

希望对您有所帮助。

最新更新