Spring MVC - 我可以在 POST 方法中创建两个不同的(与组合相关的)对象吗
Spring MVC - Can I create two different (associated with composition) objects in POST method
我正在编写 spring 启动应用程序,目前正在尝试编写用户注册方法。
问题是我的代码中有一个组合:
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int personID;
private String firstName;
private String lastName;
private String email;
private String password;
// Constructor, getters and setters omitted
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int userID;
private LocalDate dateOfRegistration;
@ManyToOne
@NotNull
private Person person; // Instance cannot exist without Person
protected User() { }
public User(Person person, LocalDate dateOfRegistration) {
this.person = person;
this.dateOfRegistration = dateOfRegistration;
}
// Constructors, getters and setters omitted
我无法摆脱这个组合,所以我的问题是:如何编写一个 POST 方法来注册一个 USER,同时创建一个 Person 对象并将其保存在数据库中?如果有什么不同,我使用 MySQL
可能你已经创建了一个Repository,但我记下来了。
public interface UserRepository extends JpaRepository<User, Integer> {
}
或者您可以编写自定义 SQL 查询。
Person person = new Person(...);
User user = new User(person, dateOfRegistration);
userRepository.save(user);
更新用户时类似。
User user = userRepository.getById(id);
user.setPerson(person);
userRepository.save();
我正在编写 spring 启动应用程序,目前正在尝试编写用户注册方法。 问题是我的代码中有一个组合:
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int personID;
private String firstName;
private String lastName;
private String email;
private String password;
// Constructor, getters and setters omitted
@Entity
public class User{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int userID;
private LocalDate dateOfRegistration;
@ManyToOne
@NotNull
private Person person; // Instance cannot exist without Person
protected User() { }
public User(Person person, LocalDate dateOfRegistration) {
this.person = person;
this.dateOfRegistration = dateOfRegistration;
}
// Constructors, getters and setters omitted
我无法摆脱这个组合,所以我的问题是:如何编写一个 POST 方法来注册一个 USER,同时创建一个 Person 对象并将其保存在数据库中?如果有什么不同,我使用 MySQL
可能你已经创建了一个Repository,但我记下来了。
public interface UserRepository extends JpaRepository<User, Integer> {
}
或者您可以编写自定义 SQL 查询。
Person person = new Person(...);
User user = new User(person, dateOfRegistration);
userRepository.save(user);
更新用户时类似。
User user = userRepository.getById(id);
user.setPerson(person);
userRepository.save();