У меня есть два объекта, как показано нижеJPA один к одному отображению FetchType.LAZY не работает
@Entity
@Table(name = "ticket")
public class Ticket {
@OneToOne(fetch=FetchType.LAZY, targetEntity = com.vahana.entity.TicketBookingAdditionalInfo.class, mappedBy = "ticket", cascade = CascadeType.MERGE)
private TicketBookingAdditionalInfo ticketBookingAdditionalInfo;
}
@Entity
@Table(name = "ticket_booking_additional_info")
public class TicketBookingAdditionalInfo {
/** The ticket. */
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
@JoinColumn(name = "ticket_id", columnDefinition = "BIGINT UNSIGNED")
private Ticket ticket;
}
Мой стол Билет содержит 40,000 записи, но бронирование билетов дополнительной информации не имеют какие-либо данных. Эта таблица будет содержать данные, только если я собираюсь добавить дополнительную информацию.
При выборе таблицы билетов он соединяется с таблицей ticket_booking_additional_info и этот запрос занимает больше времени.
Я добавил fetch = FetchType.LAZY в @OneToOne, но все равно требуется много времени для ответа. Это самый трудоемкий запрос в моей БД. Как избежать этой проблемы.Пожалуйста, один из них посоветует мне.
Am с использованием БД MySQL,
Ваше отображение не самцы никакого смысла. Если у вас есть ManyToOne с одной стороны, вы должны иметь OneToMany с другой стороны, а не OneToOne. –
Кроме того, согласно спецификациям JPA, FetchType.EAGER определяет поведение, которое должна выполнять каждая реализация JPA, в то время как FetchType.LAZY - это своего рода поведение подсказки ->, которое может отличаться в зависимости от используемого провайдера непрерывности. Какую реализацию JPA вы используете? – kyiu
Спасибо, позвольте мне проверить отображение OneToMany вместо отображения OneToOne. – Akalya