gpt4 book ai didi

java - 如何在Spring Controller 中使用JSON发送继承的对象?

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:10 25 4
gpt4 key购买 nike

我使用 Hibernate,除了这种情况之外一切都很好。如果我有类和继承类,当我在 Spring Controller 中使用 JSON 发送类似对象时,总是会收到错误 400 BadRequest。

如果我发送一个不是子类的对象,所有字段都可以很好地循环,并且所有内容都可以很好地存储。这是示例:

@Entity
@javax.persistence.Table(name="person")
@Inheritance(strategy=InheritanceType.JOINED)
public class Person{
@Id
@GeneratedValue
@Column(name="id_person")
protected int id_person;
.....

@Entity
@javax.persistence.Table(name="client")
@PrimaryKeyJoinColumn(name="id_person")
public class Client extends Person{

@Column(name="address")
protected String address;
....

@Entity
@javax.persistence.Table(name="individual")
@PrimaryKeyJoinColumn(name="id_person")
public class Individual extends Client {

@Column(name="personal_number")
protected String personalNumber;
.....

我在 Controller 中的方法:

@RequestMapping(value="/individualPerson", method=RequestMethod.POST)
public ResponseEntity<List<Individual>> posttest(HttpServletRequest request, HttpServletResponse response, @RequestBody Individual indiv)

发送继承对象时是否需要一些额外的注释或设置?

此外,Hibernate 会自动创建所有带有在这些类中注释的主键的表。

最佳答案

如果使用 JSON 格式,Jackson library默认情况下不需要任何特殊注释。 Spring 开箱即用地支持它,因此通常您不需要指定任何其他内容:

@RequestMapping(value="/individualPerson", method=RequestMethod.POST, produces="application/json")

另一种选择是依赖 HTTP 内容协商,Spring 支持这种协商,并且在 products 属性中不指定任何格式

关于java - 如何在Spring Controller 中使用JSON发送继承的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32528546/

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