SpringBoot JPA Один в один со стратегией автоматической генерации

#mysql #spring-boot #hibernate #jpa #spring-data-jpa

#mysql #пружинный ботинок #зимовать #jpa #весна-данные-jpa

Вопрос:

Я немного сбит с толку здесь, работая с отношением сущности.

 public class Document {   @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  @Column(name = "DOCUMENT_ID")  private Integer documentId;   @OneToOne(cascade = CascadeType.ALL)  @JoinColumn(name = "DOCUMENT_ID", referencedColumnName = "DOCUMENT_ID")  private MetaData metadata;   @OneToOne(cascade = CascadeType.ALL)  @JoinColumn(name = "DOCUMENT_ID", referencedColumnName = "DOCUMENT_ID")  private FulfilmentMode fulfilmentMode;   @OneToMany(cascade = CascadeType.ALL, mappedBy = "document")  private Listlt;Attachmentgt; attachments;  }   public class MetaData {   @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  @Column(name = "DOCUMENT_META_INFO_ID")  private Integer documentMetaInfoId;   @OneToOne(fetch = FetchType.LAZY, mappedBy = "metadata")  private DocumentRecord document; }  

В основном документ содержит метаданные. Когда я сохраняю документ, я ожидаю, что метаданные также должны сохраняться.

 repo.save(Document.builder().metadata(MetaData.builder().build()).build());  

Похоже, что внешний ключ, сохраняемый в метаданных, является PK документа, который становится нулевым. Я исходил из предположения, что hibernate сначала сохранит сущность документа и сгенерирует первичный ключ (автоматическая стратегия MySQL), а затем попытается сохранить метаданные.

Не мог бы кто-нибудь пролить немного света на это, пожалуйста?

Комментарии:

1. Удалось решить эту проблему, также добавив объект метаданных в объект документа. Двунаправленный. Я думаю, что мне не хватает некоторых из этих концепций.