Чтобы добавить ответ BalusC, вы можете быть более явным при вызове универсального метода-оболочки. Итак, если метод-обертка находится в классе GenericSession:
public class GenericSession {
private GenericSession() {}
public static <T> T get(Class<T> cls, Long id) {
return cls.cast(session.load(cls, id));
}
}
Вы можете назвать это так:
Entity e = GenericSession.<Entity>get(Entity.class, 123);
Это должно дать вам лучшее представление о том, как все происходит.