我用一个名为“Person”的对象创建了一个表,我可以从Postman发布、删除和放置。我对如何从postman中输入的JSON创建新查询没有问题。但是,每当我尝试删除或更新(使用put)我的查询时,我都会使用@PathVariable选择我想要的查询,并使用@RequestVariable更新所选数据。但我希望能够从JSON文件中删除或更新。下面是我的代码的样子。
人与物
@Entity
@Table(name="person")
public class Person {
@Id
@SequenceGenerator(
name = "person_sequence",
sequenceName = "person_sequence",
allocationSize = 1
)
@GeneratedValue(
strategy = GenerationType.SEQUENCE,
generator = "person_sequence"
)
@Column(name="id")
private Long id;
private String name;
private String lastname;
}
//Getters, Setters, Constructors and ToString is here
个人控制器
@RestController
@RequestMapping(path = "api/v1/person")
public class PersonController {
private final PersonService personService;
@Autowired
public PersonController(PersonService personService) {
this.personService = personService;
}
//@GetMapping
//@PostMapping
@DeleteMapping(path = "{personId}")
public void deletePerson(@PathVariable("personId") Long personId{
personService.deletePerson(personId);
}
@PutMapping(path = "{personId}")
public void updatePerson(@PathVariable("personId") Long personId,
@RequestParam(required = false) String name,
@RequestParam(required = false) String lastname){
personService.updatePersonService(personId, name, lastname);
}
}
这是我的PersonRepository界面
@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
}
我对Spring Boot很不熟悉。如果我能在@PutMap和@DeleteMap中得到一个代码,那就太好了,而且代码在个人服务类的请求中会是什么样子。
通常情况下,对请求主体使用删除方法,相反,您可以使用put方法。此外,为JSON序列化创建单独的(Dto)对象也是一个很好的实践。
@PutMapping()
public void deletePerson(@RequestBody PersonDto person){
personService.deletePerson(person.getId());
}
此外,如果要创建或更新实体,可以使用请求主体。
@PutMapping(path = "{personId}")
public void updatePerson(@PathVariable("personId") Long personId, @RequestBody PersonDto person){
personService.updatePersonService(personId, person);
}
所以你想用“json内容”替换RequestParams,对吗?如果是这样,您可以使用:
@Valid @RequestBody final Person person
顺便说一句,你的删除方法就这样吧,删除中使用实体的id就可以了,没有必要有请求体
另外,我会创建一个新实体PersonDTO,并将其用于控制器/服务组件,并将您的人员重命名为PersonDAO,仅用于存储库组件
我正在使用plugin jQuery datatables并加载我在页面底部DOM中加载的数据,并以以下方式启动插件: 现在,在执行一些操作后,我想使用ajax获得新数据(但不是ajax选项构建在数据中-不要误会我!)并用这些数据更新表。如何使用数据API做到这一点?留档很混乱,我找不到解决办法。任何帮助将非常感谢。谢谢。
我有以下不便之处,我想只使用PostgreSQL更新JSON数组的键。我有以下json: 如果“othern”=X,我需要将“othern”更新为另一个数字 (X是我传递给查询的任何数字。例如,如果othern=5,则更新othern)。 这个JSON可能要大得多,所以我需要一些可以在JSON数组中迭代的东西,找到所有与X数匹配的“othern”,并替换为新的。非常感谢。 我尝试了Postgres
这个问题几乎说明了一切。使用JPARepository,我如何更新一个实体? JPARepository只有一个save方法,它并不告诉我它实际上是create还是update。例如,我向数据库用户插入一个简单的对象,它有三个字段:、和: 然后我只需调用,此时它实际上是对数据库的插入: 到目前为止还不错。现在我想更新这个用户,比如说改变他的年龄。为此,我可以使用查询,无论是QueryDSL还是Na
我正在开发一个Spring Boot Kotlin应用程序,希望加快bootRun启动和devtools重启时间。当前重新启动大约需要20-30秒,与可能热重新加载时近即时刷新前端更改相比,这感觉非常缓慢。 我正在使用macOS Big Sur 11.6.7和Amazon corretto 17 JDK
问题内容: 我已配置logstash.conf以动态插入数据库的数据,但问题是: 当我更改表的一行时,该行不会在索引中更新,因为我仅在sql_last_value之后插入新值,尽管我是关于触发器的,但我不确定该怎么做。 问题答案: 如果用于选择行,则不能这样做。您有2种选择, 每次都选择所有行,然后使用query将它们发送到ES ,根据您的情况,我认为这不是一个好选择。 创建一个新列,其中包含记录
问题内容: 我有一个如下的json文件,我想使用更新值 update.json 我想编写一个PowerShell脚本,在其中 如何使用参数? 问题答案: 这是一种方法: 根据@FLGMwt和@mikemaccana,我改进了with,因为默认深度值为2,对于深度大于2的对象,尽管有对象,您仍会收到类信息。