I have a @OneToMany relationship and am using Hibernate 5.3.7 to write an EAGER fetch. I realize EAGER fetching is an anti-pattern, this is a very specific use case. According to this article I can use FetchMode.JOIN in my TypedQuery and Hibernate should create a nice query for me, however, I saw it spam a few dozen select statements.  It wasn't until I changed this to FetchMode.SUBSELECT that it condensed the query into one select statement.  I realize this is similar to Why Hibernate sometimes ignores FetchMode.JOIN?, however, I don't understand why FetchMode.JOIN did not work since this is all within a Hibernate query.  Any ideas?
Below are the annotations I'm using on the OneToMany side:
@Entity
@Table(name = "auto", schema = "us")
public class Auto extends AbstractTable {
   /** Ordered list of tires. */
   @OneToMany(mappedBy = "auto", fetch = FetchType.EAGER, orphanRemoval = true)
   @Fetch(FetchMode.SUBSELECT)
   private List<Tire> tires;
   ...
}
I am using SpringBoot with @PersistenceContext to get my EntityManager.  The Auto has a bi-directional OneToOne relationship with its containing class AutoOwnerThing.
final String queryString = "FROM AutoOwnerThing e JOIN FETCH e.auto WHERE e.id in :ids";
TypedQuery<AutoOwnerThing> = entityManager.createQuery(queryString, AutoOwnerThing.class);