title: Hibernate - FetchType.LAZY and FetchType.EAGER ignored
body: <p>I have an entity (named Parent) with a @OneToOne mapping to a Child entity. Currently defined with FetchType.EAGER, but it doesn't matter to the problem at hand here.</p>
  
  <p>I am trying to perform a query on Parent that does a LEFT JOIN on the Child entity, rendering the FetchType setting useless (supposedly).
  However, the query on the Child entity still gets executed, even though the join is performed correctly.</p>
  
  <pre><code>@Entity
  public class Parent {
      @NotFound(action = NotFoundAction.IGNORE)
      @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
      @JoinColumn(name = "id", insertable = false, updatable = false)
      private Child child;
  }
  
  @Entity
  public class Child {
  }
  
  CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
          CriteriaQuery&lt;Parent&gt; criteriaQuery = criteriaBuilder.createQuery(Parent.class);
  
  Root&lt;Parent&gt; root = criteriaQuery.from(Parent.class);
  Fetch&lt;Parent, Child&gt; join = root.fetch("child", JoinType.LEFT);
  
  return session.createQuery(criteriaQuery).getSingleResult();
  </code></pre>
  
  <p>I would have expected this to generate a single query with a LEFT JOIN that gathers all of the data, but instead it performs:</p>
  
  <pre><code>1) SELECT * FROM parent LEFT JOIN child ...
  2) SELECT * FROM child where id = ?
  </code></pre>