Hibernate joined inheritance + @OneToOne -> too many left outer joins

I’m using Hibernate with @OneToOne on a polymorphic base class and unfortunately it generates random left outer joins with other sub tables of SuperClass apart from the actual sub class table. I’m only querying CalledClass, which itself is connected via bi-directional OneToMany to another class. SuperClass has a lot of tables which inherit from it, they only share the id field and nothing else. How can I prevent hibernate from generating left outer joins over the Child Tables of SuperClass when querying CalledClass? Is it possible to deduce the right class type of SuperClass when querying CalledClass and only joining this class table?

public class CalledClass {

    UUID id;

    AdditionalStuff stuff;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    SuperClass<?, ?> content;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "oc_id")
    OtherClass oc;


@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "BlockType")
public abstract class SuperClass<E, T extends SomeClass> {
    long id;


As a sidenote: Someone had this problem before on Hibernate 4 and found no solution: https://stackoverflow.com/questions/16541129/avoiding-outer-joins-across-tables-when-using-joined-inheritance-with-spring-dat
In my case it’s 21 left outer joins, which is extremely inefficient I guess. I’m really astonished how there still is not solution to this problem.