java - 如何在两个表中进行记录

标签 java spring-data-jpa crud

如何使用 JPA 和 Hibernate 在表中创建两条记录。 所以我在两个表 person 和 user 之间有关系。表 user 有列 person_id。因此,首先我们需要对 person 进行记录,获取 id 并写入用户表并进行提交。

@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.

然后您可以在 User 类上设置 person,所有内容都将由 Hibernate 插入。

关于java - 如何在两个表中进行记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56789025/

相关文章:

java - 如何在@query符号中添加查询条件,这可能吗?

java - 使用 JPA 存储库查询三个属性

java - 在 Java CORBA 中传递 DII 争论

java - 如何使用 Netbeans 6.5 将文件添加到 jar 中?

java - WEB-INF/lib 内容的 JBOSS 排序

java - 如何在 Java 中测试 CRUD 操作

java.lang.ClassNotFoundException : Cannot find implementation for com. 如何处理java.demo.mapper.MapperDTO

Java - Cipher 自定义提供程序

java - Spring Data JPA无法找到带有id的对象

symfony - 无法更新实体 Symfony2