java使用Spring的RepositoryRestResource添加具有关系的新实体
所以我有User
:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String username;
private String password;
@OneToOne
private Email email;
//getters setters, constructors
}
我有{
@Entity
public class Email {
@Id
@GeneratedValue
private Integer id;
private String address;
//getters setters, constructors
}
它们都有自己的CrudRepository
,用RepositoryRestResource
注释
我的问题是:如果我想同时创建新用户和新电子邮件,以及与该用户的电子邮件关系,我应该向https://localhost:8443/users
提供什么请求主体我尝试了这个,但它创建了一个新用户,其null
电子邮件id为:
{
"username" : "test",
"password" : "test",
"email" : {
"address" : "olol@lol.kek"
}
}
# 1 楼答案
想出来了
下面是它的外观,用户:
电子邮件:
问题是,您必须向这两个对象添加
@OneToOne
注释,并为依赖实体提供mappedBy
等参数,为所有者提供@JoinColumn
注释。此外,有必要为Email
添加带有String
参数的构造函数,以便在运行时调用它(我猜实际上它是“除id之外的所有构造函数)然后我在POST请求中将这个JSON发送到https://localhost:8443/users:
它会在数据库中创建新用户,并为该用户创建一封带有该地址的新电子邮件