Spring данные jpa @Onetomany isssue - PullRequest
0 голосов
/ 26 мая 2020
@Entity
class Hospital{

@Id     
@GeneratedValue 
Private long hospitalId

Private String name;

Private string password;

@Embaded
Private Address address;

@Onetomany(mappedby=Hospital)
Private List<Department> department;

}

@Entity
class Department {

@Id     
@GeneratedValue 

private Long depId;

Private String department;

@Manytoone

@JoinColumn(name="hospitalId")

Private Hospital hospital

}

Здесь сценарий похож на первую регистрацию в больнице с именем, паролем и адресом только после входа в больницу. Я хочу вставить только внешний ключ в объект отдела, пока больница регистрируется и получает подробную информацию об отделении из указанной c больницы Я хочу обновить объект отдела с помощью внешнего ключа, как реализовать его с использованием данных Spring jpa

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Думаю, это то, что вы ищете.

@Entity
@Table(name = "Hospital")
class Hospital{

    @Id
    @GeneratedValue
    Private long hospitalId

    Private String name;

    Private string password;

    @Embedded
    Private Address address;

    @OneToMany(mappedBy = "hospital", fetch = FetchType.LAZY)
    @JsonIgnore
    Private List<Department> department;

}

@Entity
@Table(name = "Department")
class Department {

    @Id
    @GeneratedValue
    private Long depId;

    Private String department;


    @JoinColumn(name = "hospitalId")
    @ManyToOne()
    @OnDelete(action = OnDeleteAction.CASCADE)
    Private Hospital hospital;

}
0 голосов
/ 26 мая 2020

Попробуйте добавить каскад

@OneToMany(mappedBy = "class", cascade = [CascadeType.ALL])

Каскад поможет вам вставлять и обновлять с использованием внешнего ключа сущности, существует другое значение каскадного типа:

  • ВСЕ
  • ПРОДОЛЖИТЬ
  • ОБЪЕДИНЕНИЕ
  • УДАЛИТЬ
  • РЕФРЕ SH
  • ОТКЛЮЧИТЬ

Ссылка Baeldung разобраться во всех случаях с его назначением.

Надеюсь, это поможет.

...