Spring Data @EntityGraph выполняет LEFT OUTER JOIN вместо INNER JOIN - PullRequest
0 голосов
/ 10 июля 2020

Имея следующие определения родительско-дочерних сущностей, при использовании Spring @EntityGraph выполняет LEFT OUTER JOIN вместо INNER JOIN.

@Entity
public class Parent {

  @Id
  @Column(name = "gid", updatable = false, nullable = false, columnDefinition = "...")
  private UUID id = UUID.randomUUID();

  @ManyToOne(fetch = FetchType.LAZY, optional = false)
  @JoinColumn(name = "type_id", nullable = false, columDefinition='...')
  private Type type;

  // ...

@Entity
public class Type {

  @Id
  @Column(name = "gid", updatable = false, nullable = false, columnDefinition = "...")
  private UUID id = UUID.randomUUID();

  // ...

public interface ParentRepository extends JpaRepository<Parent, UUID> {

  @EntityGraph(attributePaths = "type")
  Optional<Parent> findOneWithTypeById(UUID id);

Результат ParentRepository#findOneWithTypeById a LEFT JOIN, хотя я указал, что type это optional=false и nullable=false.

Здесь должно быть достаточно информации для Spring / JPA, чтобы сгенерировать запрос с INNER JOIN?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...