当前位置: 首页 > 知识库问答 >
问题:

JACKSON REST API添加实体字段,其id仅在manytone中

红朝
2023-03-14

我对spring rest api有点陌生。我有两个具有单向多对一关系的实体。

@Entity
public class Users{
    @Id @Column(name = "user_id") @JsonProperty("userId")
    private int id;

    @ManyToOne @JoinColumn("city_id")
    private City city;

    // other fields, getters, setters
}

@Entity
public class City{
    @Id @Column(name = "city_id") @JsonProperty("cityId")
    private int id;

    private String name;

    // other fields, getters, setters
}

假设我在城市表中已经有一些城市。当我想使用http post方法添加城市id为2的新用户时,我必须执行以下操作:

{
  "userId": 1,
  "city": {
     "cityId": 2
  }
}

如您所见,我必须首先将城市ID分组到城市实体中。没有分组,我怎么做?这样地:

{
  "userId": 1,
  "cityId": 2
}

共有1个答案

封烨伟
2023-03-14

您可以使用@JsonUn包装链接

用于指示属性应序列化为“未包装”的注释;也就是说,如果它将被序列化为JSON Object,则它的属性将被包含为其包含的Object的属性。

示例代码:

@Entity
public class Users{
    @Id @Column(name = "user_id") @JsonProperty("userId")
    private int id;

    @JsonUnwrapped
    @ManyToOne @JoinColumn("city_id")
    private City city;

    // other fields, getters, setters
}
 类似资料:
  • 问题内容: 我有点喜欢Spring Rest API。我有两个具有单向多对一关系的实体。 假设我在城市表中已经有一些城市。当我想使用http post方法添加城市ID为2的新用户时,我必须执行以下操作: 正如你所看到的,我不得不集团内实体第一。没有分组怎么办?像这样 : 问题答案: 您可以使用 链接 用于指示属性应“未包装”序列化的注释;也就是说,如果将其序列化为JSON对象,则其属性将作为其包含

  • 我试图在多对一关系字段上使用Java的Hibernate@Filter,但当我启用该过滤器并尝试使用AJAX中的StockDailyRecord服务调用getAll方法时,我得到了以下结果: 这是我定义过滤器的实体: 但是,当我用数据库“stock_id”中的实际列更改过滤器,并将其与我希望的id进行比较时,过滤器可以正常工作。 以下是我如何在StockDailyRecordService中启用过

  • 问题内容: 我使用ServiceStack,并且想在Redis中将对象存储为散列,并通过id访问其部分(字段),而无需序列化整个对象,所以我有一个问题: 有没有一种方法可以使用“ Id”以外的其他属性来标记ID字段?我正在使用命名约定,其中id字段的名称类似于“类 名+ ID”。因此,在用户类中,将在 Userclass ID,项目类ItemId等字段中。 是否有一种方法可以更新对象中更改的属性,

  • 我想知道在创建SSL证书并将其添加到subject字段时,是否有一种简单的方法可以自动生成“全局”唯一Id?查看opensslbash命令/示例将很有帮助。

  • 我有一个带有自定义字段的应用程序——用户基本上可以通过选择字段的类型并给它一个名称来定义自定义字段。然后,自定义字段被呈现为实体的一部分,并将提供给这些字段的数据保存到我的数据库中。在大多数情况下,我能够以编程方式并通过正常的Hibernate映射(即@OneTo多国注释集合)处理这些问题而没有问题。然而,我目前面临一个问题。我们希望将这些自定义字段及其值用于“父”实体的实时报告。自定义字段值映射

  • 我使用JPA Hibernate Spring进行简单的工作。我写了下一个模块: 服务: 服务: 道: 我正在尝试向子实体卷添加一些记录。 但是在沃姆格之后。在点1添加(vol)我没有看到任何添加的记录(子实体)。为什么? upd 当然我会在交易结束后看到这些记录,但为什么我不能在交易结束前看到这些记录呢???它们必须在内存缓存中。。。 upd2 我的Spring。xml