java—仅在body json spring中使用id定义实体关系

jljoyd4f  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(150)

我试图通过crud中的id来管理我所有的实体。
假设我有病变实体和检查实体。
抽象实体.java

@Getter
@Setter
@MappedSuperclass
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(Include.NON_NULL)
public class AbstractEntity {

  @Id
  @GeneratedValue(generator = "uuid")
  @GenericGenerator(name = "uuid", strategy = "uuid2")
  @Column(unique = true, nullable = false)
  private String id;
}

病损.java

@Entity
@Table(name = "lesion")
@Getter
@Setter
public class Lesion extends AbstractEntity {

  @OneToMany(mappedBy = "lesion")
  private List<Exam> exams;
}

考试.java

@Entity
@Table(name = "exam")
@Getter
@Setter
public class Exam extends AbstractEntity {

  @ManyToOne
  public Lesion lesion;
}

我试图通过检查id列表来设置病变和检查之间的关系,比如:(假设已经有两个id为的持续检查 e1afa296-05fe-4bc4-9103-0f0bb6a5cedd 以及 97353d31-64ce-40f7-87ef-deab435a2f7c )

POST <url>/lesion 
body: 
{
  "exams": [
       "97353d31-64ce-40f7-87ef-deab435a2f7c",
       "e1afa296-05fe-4bc4-9103-0f0bb6a5cedd"
   ]
}

现在,我能做的就是:

POST <url>/lesion 
body: 
{
  "exams": [
       {"id": "97353d31-64ce-40f7-87ef-deab435a2f7c"},
       {"id": "e1afa296-05fe-4bc4-9103-0f0bb6a5cedd"}
   ]
}

手动获取与这些id相对应的持久化对象,并在数据库中手动设置。我相信有一个更自动的方式通过Jackson,但我卡住了。
你有主意吗?
谢谢您。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题