spring data jpa unnecessary left join

Viewed 9934

I have the following model:

enter image description here

I want to get all Institutions (Intituciones) with specified sectorId.

In the tbInstitucion model I have a relationship with tbSector:

 @ManyToOne(fetch=FetchType.LAZY)
 @JoinColumn(name="`sectorId`")
 private Sector sector;

is there a way to obtain a query like:

select * 
from tbInstitucion 
where sectorId = ?

I tried with: findBySector(Sector sector)

but with this I need an additional query to find the sector and findBySector is generating the following query:

select
        generatedAlias0.institucionId,
        generatedAlias0.institucionNombre 
    from
        Institucion as generatedAlias0 
    left join
        generatedAlias0.sector as generatedAlias1 
    where
        generatedAlias1=:param0

tried with this other one:

findBySector_sectorId

which generates the above query as well.

Wouldn't be better to form a query like:

select * 
from tbInstitucion 
where sectorId = ?

Is there a way to get the above query? Why is JPA generating the left join?

2 Answers
Related