Spring data findBy связанный столбец объекта - PullRequest
0 голосов
/ 01 мая 2019

У меня есть 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-запроса?

...