Java 多个一个一个多个双向:从参考表中检索数据

Java 多个一个一个多个双向:从参考表中检索数据,java,spring,spring-boot,hibernate,hibernate-mapping,Java,Spring,Spring Boot,Hibernate,Hibernate Mapping,我想在发布对象时,从关系的引用表返回数据 该关系定义如下: @Entity @Table( name = "application") public class Application { @Id @JsonIgnore private Long id; @ManyToOne @JoinColumn(name = "product_category") private ProductCategory productCategory;

我想在发布对象时,从关系的引用表返回数据

该关系定义如下:

@Entity
@Table( name = "application")
public class Application {

    @Id
    @JsonIgnore
    private Long id;

    @ManyToOne
    @JoinColumn(name = "product_category")
    private ProductCategory productCategory;

    ...

}
以及:

我希望获得以下json输出:

...
"productCategory": {
    "productCategoryId": 0,
    "description": "Personal Loan"
},
...
但我得到的是:

...
"productCategory": {
    "productCategoryId": 0,
    "description": null
},
...

您能提供建议吗?

您的问题中没有太多代码,但您在评论中提到了您要返回的内容:

return applicationRepository.save(appRequest);
另一方面,您没有在映射中将更改从父级级联到子级:

@ManyToOne
@JoinColumn(name = "product_category")
private ProductCategory productCategory;
我认为将@ManyToOne更改为@ManyToOnecascade=CascadeType.ALL应该会有所帮助

编辑:

如果无法更改模型,只需返回实体:

return applicationRepository.findById(id);

这样jpa就不会在保存时覆盖实体,它只是从db中读取一个实体。

您可以发布生成json响应的代码吗?这只是存储库的简单返回。返回applicationRepository.saveappRequest;如果没有看到您的代码,什么都不能说。数据已经出现在product_category表中。如果我错了,请纠正我,但如果我不想将更改传播到引用表,我不需要使用该选项。来自Crudepository的save方法返回持久化/合并实体。数据库中的数据视图可能未刷新。你试过我的建议了吗?在这种情况下我不能用它。product_category具有此json对象未提供的必需描述字段。。。所以我不能只发布id,因为它返回了一个null description field的错误。使用return applicationRepository.findByIdid如何?如果我搜索一个实体,它会工作!你知道为什么吗?
@ManyToOne
@JoinColumn(name = "product_category")
private ProductCategory productCategory;
return applicationRepository.findById(id);