У меня есть 2 сущности, у которых есть отношения oneTomany. У сущности 1 есть список сущностей 2. Но когда я пытаюсь использовать пружинные данные findByEntity2_entity2colomn, он запускает внешнее левое соединение вместо внутреннего соединения.
Сущность 1
public class Entity1 {
@Column(name = "id_alert")
@Id
private Integer alertId;
@OneToMany(mappedBy = "entity1 ", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private List<Entity2> email;
}
Сущность 2
public class Entity2{
@EmbeddedId
private AlertEntityIdentity emailEntityIdentity;
@MapsId("id_alert")
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_alert", updatable = false, insertable = false)
private Entity1 entity1 ;
}
public class AlertEntityIdentity implements Serializable {
@Column(name = "id_user",nullable = false)
private Long userId;
@Column(name = "id_contact",nullable = false)
private Integer contactId;
@Column(name = "id_alert",nullable = false)
private Integer subscriptionId;
}
Сгенерированный запрос
select
//removed
from
Entity1 subscripti0_
**left outer join**
Entity2 emailalert1_
on subscripti0_.id_alert=emailalert1_.iid_alert
where
emailalert1_.id_user=?
JPA-запрос
List<Entity1> findByEntity2_AlertEntityIdentity_UserId(Long userId);
Как я могу изменить это поведение без использования нативного или HQL-запроса?