Java Spring boot获取(和编辑)具有多个路径变量的实体

Java Spring boot获取(和编辑)具有多个路径变量的实体,java,spring,spring-data-jpa,entity,path-variables,Java,Spring,Spring Data Jpa,Entity,Path Variables,我的处境与这里的问题非常相似: 我有一个“Item”实体,我想为它编辑一些属性(可能是一个,可能是所有属性)——但是键。我知道BeanUtils.copyProperties(sourceItem,targetItem,“id”)对于此类情况非常适用。从我链接的问题中,我还进一步了解到,进行此编辑的一种方法就是在控制器中创建更新方法,如下所示: @PutMapping(“/{id}”) 公共响应属性更新(@PathVariable(“id”)项目标项,@RequestBody项源项){ copy

我的处境与这里的问题非常相似:

我有一个“Item”实体,我想为它编辑一些属性(可能是一个,可能是所有属性)——但是键。我知道
BeanUtils.copyProperties(sourceItem,targetItem,“id”)对于此类情况非常适用。从我链接的问题中,我还进一步了解到,进行此编辑的一种方法就是在控制器中创建更新方法,如下所示:

@PutMapping(“/{id}”)
公共响应属性更新(@PathVariable(“id”)项目标项,@RequestBody项源项){
copyProperties(sourceItem,targetItem,“id”);
返回ResponseEntity.ok(repo.save(targetItem));
}
我面临的问题是,我有多个路径变量。因此,要编辑该项,我需要类似于
@PutMapping(“/{id1}/{id2}/{id3}”)
,因为该项本身链接到其他项

因此,我尝试做的(基于相关问题)是:

@PutMapping(“/{id1}/{id2}/{id3}”)
公共响应属性更新(@PathVariable(“id1/id2/id3”)项目标项,@RequestBody项源项){
复制属性(sourceItem,targetItem,“id3”);
返回ResponseEntity.ok(repo.save(targetItem));
}
我认为出现故障的部分是
@PathVariable(“id1/id2/id3”)
,因为IDE确实告诉我无法找到路径


我想知道您是否能想出一种优雅的方法来处理多变量问题-我想使用
BeanUtils.copyProperties()
是一种编辑内容的干净方法,我很乐意保持原样。

我想您应该映射到3个不同的路径变量:

@PutMapping("/{id1}/{id2}/{id3}")
public ResponseEntity<?> update(@PathVariable("id1") Item targetItem1
@PathVariable("id2") Item targetItem2, @PathVariable("id3") Item targetItem3, @RequestBody Item sourceItem) {
    BeanUtils.copyProperties(sourceItem, targetItem1, "id");
    return ResponseEntity.ok(repo.save(targetItem1));
}
@PutMapping(“/{id1}/{id2}/{id3}”)
公共响应属性更新(@PathVariable(“id1”)项targetItem1
@PathVariable(“id2”)项targetItem2、@PathVariable(“id3”)项targetItem3、@RequestBody项sourceItem){
copyProperties(sourceItem,targetItem1,“id”);
返回ResponseEntity.ok(repo.save(targetItem1));
}