我目前正在编写一个REST端点,允许用户POST嵌套的JSON数据,以便在一个JSON有效负载中创建和链接多个表。为了使这个过程可视化,我将提供一个简单的例子。
[家长] 1 - > * [孩子]
我有一个Parent实体,它与OneToMany关系连接到多个子实体。
要在一次API调用中创建父实体和子实体,用户将POST到/ parent:
{
"parent_name" : Dad,
"childs" : [
{
"child_name" : Joe
}
]
}
孩子将通过父母的主键ID自动链接到父母,因为我将此代码添加到了我的父对象。
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@JoinColumn(name = "PARENT_ID", referencedColumnName = "ID")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Child> children= new HashSet<>();
@JoinColumn操作会将父ID的ID添加到子PARENT_ID列中,并且我已经验证这在数据库中是否正常工作。
问题是,如果我想发送GET请求以查看孩子的父母(通过向/ child / {child_id}调用GET请求),则响应正文将返回孩子的内容。在重新启动应用程序之前,parent为null。一旦我重新启动应用程序并向/ child / {child_id}发出相同的请求,我就能看到孩子的父母(它会给我父母的ID)。
我的问题是,为什么我的REST端点在创建新的父/子关系时没有更新,直到我重新启动应用程序之后?我有什么办法可以解决这个问题吗?