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();