简体   繁体   English

JPA OneToOne映射

[英]JPA OneToOne mappedBy

I have a class InvitedTech . 我上了InvitedTech

public class InvitedTech{
    ...
    @OneToOne(mappedBy="invitedTech", cascade = CascadeType.ALL, fetch=FetchType.LAZY)
    public Flight flight;

    @OneToOne(mappedBy="invitedTech", cascade = CascadeType.ALL, fetch=FetchType.LAZY)
    public Hotel hotel;

    ...
}

When I write a query to this table like this... 当我像这样向该表查询时...

List<InvitedTech> invT = JPA.em().createQuery("SELECT inv from InvitedTech inv").getResultList();

I get multiple select statements executed for each row that is in the invitedTech table. 我收到了对vitedTech表中的每一行执行的多个选择语句。 So for example I have 11 rows and after running that one query its like.. 因此,例如,我有11行,运行完一个查询后,它就好..

13:09:26,350 DEBUG ~ select invitedtec0_.id as id184_, invitedtec0_.comments as comments184_, invitedtec0_.confirmedBy as confirm11_184_, invitedtec0_.confirmedDate as confirme3_184_, invitedtec0_.contractor as contractor184_, invitedtec0_.flightNeeded as flightNe4_184_, invitedtec0_.hotelNeeded as hotelNee5_184_, invitedtec0_.inviteDate as inviteDate184_, invitedtec0_.method as method184_, invitedtec0_.payRate as payRate184_, invitedtec0_.paymentItem_id as payment13_184_, invitedtec0_.replyDate as replyDate184_, invitedtec0_.status as status184_, invitedtec0_.techRequirement as techReq14_184_ from InvitedTech invitedtec0_
13:09:26,354 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,355 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,357 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,357 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,358 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,359 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,360 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,361 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,362 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,362 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,363 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,364 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,364 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,365 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,366 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,367 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,367 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,368 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,370 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,371 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?
13:09:26,372 DEBUG ~ select flight0_.id as id156_1_, flight0_.airline as airline156_1_, flight0_.confirmationNumber as confirma3_156_1_, flight0_.departure as departure156_1_, flight0_.flightNumber as flightNu5_156_1_, flight0_.invitedTechId as invitedT7_156_1_, flight0_.terminal as terminal156_1_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_ from Flight flight0_ inner join InvitedTech invitedtec1_ on flight0_.invitedTechId=invitedtec1_.id where flight0_.invitedTechId=?
13:09:26,372 DEBUG ~ select hotel0_.id as id189_2_, hotel0_.address as address189_2_, hotel0_.checkinTime as checkinT3_189_2_, hotel0_.confirmationNumber as confirma4_189_2_, hotel0_.invitedTechId as invitedT7_189_2_, hotel0_.name as name189_2_, hotel0_.phone as phone189_2_, invitedtec1_.id as id184_0_, invitedtec1_.comments as comments184_0_, invitedtec1_.confirmedBy as confirm11_184_0_, invitedtec1_.confirmedDate as confirme3_184_0_, invitedtec1_.contractor as contractor184_0_, invitedtec1_.flightNeeded as flightNe4_184_0_, invitedtec1_.hotelNeeded as hotelNee5_184_0_, invitedtec1_.inviteDate as inviteDate184_0_, invitedtec1_.method as method184_0_, invitedtec1_.payRate as payRate184_0_, invitedtec1_.paymentItem_id as payment13_184_0_, invitedtec1_.replyDate as replyDate184_0_, invitedtec1_.status as status184_0_, invitedtec1_.techRequirement as techReq14_184_0_, flight2_.id as id156_1_, flight2_.airline as airline156_1_, flight2_.confirmationNumber as confirma3_156_1_, flight2_.departure as departure156_1_, flight2_.flightNumber as flightNu5_156_1_, flight2_.invitedTechId as invitedT7_156_1_, flight2_.terminal as terminal156_1_ from Hotel hotel0_ inner join InvitedTech invitedtec1_ on hotel0_.invitedTechId=invitedtec1_.id left outer join Flight flight2_ on invitedtec1_.id=flight2_.invitedTechId where hotel0_.invitedTechId=?

How would I fix this? 我该如何解决? If I write my own SQL I can do this in one statment using in keyword. 如果我编写自己的SQL,则可以使用in关键字在一项声明中执行此操作。 I have tried different things like @BatchSize(size = 20) so that it fetches 20 records at a time, I have tried using @Fetch(FetchMode.JOIN) but all tries have not worked. 我尝试了类似@BatchSize(size = 20)以便一次获取20条记录,我尝试使用@Fetch(FetchMode.JOIN)但所有尝试均无效。 Is there a I can change so only 1 query get executed? 是否可以更改,以便仅执行1个查询?

If I remove the mappedBy from the annotations that removes the additional queries, but then I am unable to access those properties, because object does not know about the relationship. 如果我从删除其他查询的注释中删除了appedBy,但是由于对象不了解这种关系,我将无法访问这些属性。

为了避免出现n + 1问题,您可以尝试使用JOIN FETCH查询,如下所示(未经测试):

SELECT inv from InvitedTech inv LEFT JOIN FETCH inv.flight LEFT JOIN FETCH inv.hotel

You could use the @JoinFetch or @BatchFetch annotations on the flight and hotel objects if you would like your queries to fetch those relations in all queries performed. 如果希望查询在所有执行的查询中获取这些关系,则可以在flighthotel对象上使用@JoinFetch@BatchFetch批注。

Alternatively you could use a query hint to fetch those relations on a per-query basis. 或者,您可以使用查询提示在每个查询的基础上获取这些关系。

Examples of all these are in this blog post . 所有这些示例都在此博客文章中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM