我正在使用Spring Boot + hibernate制作书店休息API,我不知道该如何继续。所以首先用户的创建(使用DTO没有张贴在这里):添加客户详细信息给用户休息api
@Entity
@Table(name = "app_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id", nullable = false, updatable = false, unique = true)
private Long id;
@Column(name = "email", nullable = false, unique = true)
private String email;
@Column(name = "password_hash", nullable = false)
private String passwordHash;
@OneToOne
@JoinColumn(name = "customer_id")
private Customer customer;
@Column(name = "role", nullable = false)
@Enumerated(EnumType.STRING)
private Role role;
// jpa requirement
public User() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPasswordHash() {
return passwordHash;
}
public void setPasswordHash(String passwordHash) {
this.passwordHash = passwordHash;
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
}
然后他可以登录和搜索图书,他关注的是当他要命令他们(使用POST含JSON。他的书),他应该进入他的细节,在(使用DTO)我的客户单位:
@Entity
@Table(name = "customer")
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "customer_id", nullable = false, updatable = false, unique = true)
private Long id;
@Column(name = "first_name", nullable = false)
private String firstName;
@Column(name = "last_name", nullable = false)
private String lastName;
@Column(name = "phone_number", nullable = false)
private String phoneNumber;
@ManyToOne
@JoinColumn(name = "address_id")
private Address address;
@OneToOne
@JoinColumn(name = "user_id")
private User user;
// jpa requirement
public Customer() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
这是一个好办法?我不知道如何才能将用户与客户联系起来 - >当用户是注册用户时,顾客拥有所有的细节以作出订单,它可以在网上商店中使用,但我不知道我是否正确链接了他们我的思维过程是好的。有人详细说明了这一点?
编辑: 澄清:
用户注册,并具有唯一的电子邮件和密码 - POST @ /用户
用户增加了客户的详细信息(无地址)POST @ /用户/ 1/customer:找到当前登录的用户 - >添加客户在用户表中设置customer_id(OneToOne连接)
用户添加他的地址详细信息POST @ users/1/customer/address:当前登录我们呃发现 - >客户通过CUSTOMER_ID发现,然后添加地址,并通过使用不同的DTO ADDRESS_ID
所有3个连接的客户 - 这是好办法?