在Spring中为@JoinColumn属性发布POST

时间:2017-06-16 06:13:00

标签: java spring spring-data-jpa

我有一个log表,其中包含以下列:

  • id(主键自动增量)
  • asset(varchar)
  • seen_by(整数)(持有user_id)

我有另一张user表,就像:

  • user_id(主键自动增量)
  • name(varchar)

我的日志实体有一个@OneToOne@JoinColumnUser个实体,因此Log实体的seenBy类型为User。 所以Log JSON资源如下所示:

{
"id" : "1",
"asset" : "something",
"seenBy" : 
{"userId" : "11",
"name" : "some user"}
}

这适用于GET请求。但对于POST请求,我必须发布整个User资源,我不想这样做。

所以,我想要的是,在GET中,Log JSON应该保持相同的状态,并且' seeBy'作为User' type. But for POST request I only want to send the userId`。因此,对于POST,JSON资源应如下所示:

{
"id" : "1",
"asset" : "something",
"seenBy" : "11"
}

有没有办法实现这个目标?

P.S。我正在使用Spring Boot 1.5.3。 MySql作为数据库。和Spring Data Jpa。

1 个答案:

答案 0 :(得分:-1)

有一种方法可以做到。

方法是以方式定义您的类,以便不存在USER和LOG表的直接映射。但只有LOG表中的ID作为LONG或INTEGER字段。传递用户并以DTO对象的身份登录后端。从用户对象获取ID并在日志ID字段中设置。