The type of fetch (lazy / impatient) refers to when Hibernate will receive the connection, whether it will receive the object (impatient) or expect the code to request an association (lazy).
The select / join mode refers to how Hibernate will receive the association, i.e. whether it uses an optional SELECT statement or uses a join.
Some combinations of them make no sense, for example. lazy + join. If you are using lazy sampling, then the SELECT sampling mode that you can do is selected.
If you use reliable sampling, you can choose either sampling mode.
source share