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

OneToMany映射仅返回映射字段的ID

吴宏扬
2023-03-14

我想询问一个人,并得到以下回应:

{
    "id": 186506,
    "first_name": "JANE",
    "last_name": "DOE",
    "pidm": 324950
}

但在需要时,我还想包含phone字段,并获得如下内容:

{
    "id": 186506,
    "phones": [
        {
            "id": 329815,
            "phone_number": "1234567890"
        },
        {
            "id": 329816,
            "phone_number": "0987654321"
        }
    ],
    "first_name": "JANE",
    "last_name": "DOE",
    "pidm": 324950
}

但是,我得到的只是手机ID,就像这样:

{
    "id": 186506,
    "phones": [
        {
            "id": 329815
        },
        {
            "id": 329816
        }
    ],
    "first_name": "JANE",
    "last_name": "DOE",
    "pidm": 324950
}

这是两个有问题的领域:

@Entity
@Table(name="PERSON")
class Person implements Serializable {

    @Id
    @Column(name="person_id")
    Long id

    @Column(name="person_pidm")
    Long pidm

    @Column(name="person_first_name")
    String first_name

    @Column(name="person_last_name")
    String last_name

    @OneToMany(mappedBy="pidm")
    private List<SprteleDetail> phones

    List<SprteleDetail> getPhones() {
        return phones
    }
}

java prettyprint-override">@Entity
@Table(name="TELEPHONE")
class Telephone implements Serializable {

    @Id
    @Column(name="telephone_id")
    Long id

    @Column(name="telephone_phone_number")
    String phone_number

    @ManyToOne
    @JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
    private Person pidm;

}

共有3个答案

顾斌
2023-03-14

试试这个

@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
@JsonBackReference //try this
private Person pidm;
郦兴德
2023-03-14

在json like中您想要的字段上添加< code>@JsonBackReference

 @ManyToOne
 @JsonBackReference
 @JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
 private Person pidm;
田易安
2023-03-14
@ManyToOne
@JoinColumn(name="telephone_pidm", referencedColumnName="person_pidm")
@JsonIgnore //try this
private Person pidm;
 类似资料:
  • Navicat 会依源表或集合对字段类型和長度作出假设。你可以从下拉式菜单选择你所需的类型。 【提示】导入多个表或集合时,你可以从下拉式菜单选择其他表或集合。 如果你导入数据到现有的表或集合,你则需要手动映射源字段名到目标,或按住 Control 键并点按字段,然后选择“智慧匹配全部字段”、“按次序匹配全部字段”和“全部取消匹配”来进行快速匹配。 如果你透过 ODBC 导入,“条件式查询”按钮会打

  • 我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!

  • 我与ModelMapper框架有麻烦。请解释为什么我看到以下行为。 我在build.gradle有以下依赖性 和一个类客户: 我还有一个地图绘制工具: 还有一个测试 在fred()中,方法输出是非红色的“Customer{name=fred,age=40}”(“Customer{name=null,age=40}”)。你能解释一下为什么吗?为什么我在第一个方法中看不到输出“George”?

  • 我一直试图通过一个名为Guardian的中间类映射两个用户之间的一些“OneToOne”关系。当我试图检索一个用户(和他的监护人)时,从Glassfish(Open edition V4.0)返回一个内部服务器错误。但是,日志中没有显示任何类型的堆栈跟踪或任何错误。我怀疑问题是我在JPA类中的映射。 启动服务器时,我得到两个与Guardian类有关的警告,但我并不真正理解: 警告:映射到元素[me

  • 我们必须在可选元素“mappedby”中指定什么。是特定模型的table_name还是classname? 哪个是正确的? 这个

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误: