我正在使用Spring Boot hibernate制作一个书店rest api,我不知道该如何进行。因此,首先创建用户(使用此处未发布的DTO):
@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@ /users
用户添加其客户详细信息(无地址)POST@/users/1/customer:找到当前登录的用户-
用户添加其地址详细信息POST@users/1/customer/address:找到当前登录的用户-
所有3个都使用不同的DTO-这是好方法吗?
我认为您可以重新建模您的实体:
客户就是用户
顾客买书
创建具有默认属性的用户类。扩展用户类以创建客户类并在其中添加额外字段。创建一个Book类。将Book类的ArrayList作为books添加到Customer类。
一旦用户登录,您就已经有了用户详细信息。为用户创建客户对象,并在用户作为客户填写时添加额外的详细信息,将选定的书籍添加到客户对象,并将客户对象保存到数据库。
我正在使用vue js开发laravel评论系统,在执行axios请求时遇到了一个问题。我需要接收一个数组作为对帖子所有评论的响应,但我想将用户数据添加到此数组中,以获取用户名和其他用户的详细信息。 当前: [{“id”:35,“user_id”:1,“post_id”:4,“parent_id”:0,“commenttext”:“test”,“created_at”:null,“updated_
我在Amazon EC2上设置了一个2节点hazelcast集群。在其中一个节点上,我有一个连接到集群并运行原子长计数器增量的客户端程序 如何找出客户端连接并运行增量AndGet操作的Hazelcast服务器节点? 谢谢
我对Java和Spring3(过去8年主要使用PHP)还很陌生。我已经使用spring security 3来处理所有默认的userDetails和userDetailsService,我知道我可以通过使用以下命令访问控制器中登录用户的用户名: 但有两个问题我想不通: > 我希望在用户登录时存储许多其他用户详细信息(如DOB、性别等),并在以后通过控制器进行访问。我需要做什么才能使创建的userD
嗨,我尝试用InMemoryDao获取userDetailsService。但是我得不到,我试过@Autowired,@ Inject(userdailsservice,InMemoryDaoImpl,InMemoryManager...)但是我不能让它工作。 有公共类安全扩展WebSecurityC 只尝试了WebSecurityCon
我想在android Studio与用户详细信息证书。并且用户可以下载该证书。(JAVA)