Получить несколько строк со связанными с ними данными в одном запросе к базе данных - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть две сущности.У них есть отображение OneToOne.Я хочу получить все строки одного объекта вместе со связанными деталями в одном вызове базы данных в JPA.

Я пробовал загрузку EAGER.Но он выбирает все строки книги за один вызов, а затем выбирает book_additional_details один за другим.Я хочу получить все строки с соответствующими строками таблицы в одной БД (например, с помощью SQL-запроса с объединением).

@Entity
@Table("book")
public class Book{
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "id")
  Long id;

  @Column("name")
  private String name;

  @OneToOne(fetch = FetchType.EAGER, mappedBy = "book", cascade = CascadeType.PERSIST)
  @JsonManagedReference
  private BookAdditionalDetail bookAdditionalDetail;
}





@Entity
@Table(name = "book_additional_detail")
public class BookAdditionalDetail{
  @Id
  Long id;

  @OneToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "id")
  @MapsId
  @JsonBackReference
  private Book book;

  @column("author_name")
  private String authorName;
}


bookRepo.findAll()

bookRepo.findAll () будет получать все строки книги в одном вызове SQLи затем один за другим запускает sql-запросы для получения book_additional_details.Я хочу, чтобы bookRepo.findAll () извлекал все эти детали в одном вызове sql.Желательно иметь решение, которое не использует собственный запрос (Предпочтительное решение путем управления аннотациями).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...