Как сделать запись в двух таблицах - PullRequest
0 голосов
/ 27 июня 2019

Как сделать две записи в таблице, используя JPA и Hibernate.Так что я имею отношение между двумя таблицами человек и пользователь.У пользователя таблицы есть столбец 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")));





1 Ответ

0 голосов
/ 27 июня 2019

Если вы хотите сохранить код в том виде, в каком он есть, сначала нужно сохранить Персона, а затем получить идентификатор и установить его в поле «PersonSid пользователя».

В противном случае вы должны определить отношение один к одному от человека к пользователю с помощью каскадирования при сохранении:

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

И тогда вы можете установить человека в классе User, и все будет вставлено Hibernate.

...