Melhor maneira de implementar um UserType do Hibernate após descontinuações?

Recebi recentemente a versão mais recente do Hibernate e notei que meus UserTypes agora têm avisos sobre os métodos nullSafeGet (ResultSet, String) e nullSafeSet (PreparedStatement, T, int) de AbstractStandardBasicType sendodescontinuad em favor dos métodos correspondentes que usam um argumento SessionImplementor. O problema é que, quando você implementa um UserType, o SessionImplementor não é passado para você da mesma forma que em BasicType, CompositeUserType, etc.

Verifiquei o manual do Hibernate para ver se havia um exemplo atualizado. Seu exemplo UserType usa get / set em vez de nullSafeGet / nullSafeSet, mas esses métodos também foram preteridos em favor de versões que usam um SessionImplementor. Portanto, parece que até o exemplo oficial de UserType do Hibernate está usando métodos obsoletos, o que me leva a pensar em duas coisas:

Existe uma boa maneira de obter o Implementador de Sessão de dentro do UserTypSe não for prático obter o SessionImplementor de dentro de UserType, e não quero escrever meu próprio nullSafeGet / nullSafeSet, devo abandonar o UserType em favor de uma de suas alternativas? Quais são as diferenças práticas entre UserType e, por exemplo, BasicType?