如何在两个表中做记录
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 将插入所有内容。
如何使用 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 将插入所有内容。