如何在两个表中做记录

How to make record in two tabled

如何使用 JPA 和 Hibernate 在 table 中创建两条记录。 所以我有两个 table 人和用户之间的关系。 Table 用户有列 person_id。所以首先我们需要给 person 做一个记录,获取 id 并写入用户 table 并提交。

@Entity
@Table(name = "person")
public class Person {
  @Column(name="id")
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  @Column(name="old_id", nullable = false)
  private String oldId

}


@Entity
@Table(name="user")
public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  @Column(name="id")
  private long id;

  @Column(name="username")
  private String username;

  @Column(name="password")
  private String password;

  @Column(name="person_id")
  private long personId;

  public User(String username, String password) {
    this.username = username;
    this.password = password;
  }
personRepository.save(new Person("9999-1","Denis Beloff","Denis",
                "Beloff", LocalDate.now(),LocalDate.now(),"M",33,
                174.0,83.1,"Some Street",LocalDate.now(),"some@email.com",
                "890327388", new User("some@email.com", "passw")));





如果您想保持代码不变,您必须先保存 Person,然后获取 id 并将其设置到 Users personId 字段。

否则你必须在持久化时定义一个人与用户之间的一对一关系并级联:

@OneToOne(cascade = CascadeType.PERSIST)
private Person person.

然后您可以在用户 class 上设置人员,Hibernate 将插入所有内容。