我有两个像下面这样的实体
@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表,该查询将花费更多时间。
我在@OneToOne中添加了fetch = FetchType.LAZY,但仍然需要很多时间来响应,这是我数据库中最耗时的查询。如何避免这个问题。请有人指导。
我正在使用mysql DB,
@Entity
@Table(name = "ticket")
public class Ticket {
//Default is lazy
@OneToMany(mappedBy = "ticket", cascade = CascadeType.MERGE)
private List<TicketBookingAdditionalInfo> ticketBookingAdditionalInfo;
}
@Entity
@Table(name = "ticket_booking_additional_info")
public class TicketBookingAdditionalInfo {
// The ticket.
//Default is eager
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
@JoinColumn(name = "ticket_id", columnDefinition = "BIGINT UNSIGNED")
private Ticket ticket;
}
note备注如果您具有ManyToOne,则逆关系为OneToMany,否则,如果您具有OneToOne,则逆关系为OneToOne。您应该会看到本教程
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句