Недавно я получил последнюю версию Hibernate и заметил, что у моих UserTypes теперь есть предупреждения о nullSafeGet (ResultSet, String) и nullSafeSet (PreparedStatement, T, AbstractStandardBasicType, int), которые устарели в пользу их соответствующих методов, которые принимают аргумент SessionImplementor. Проблема в том, что когда вы реализуете UserType, SessionImplementor не передается вам, как это происходит в BasicType, CompositeUserType и т. Д.
Я проверил руководство по Hibernate, чтобы увидеть, был ли обновленный пример. В их примере UserType используется get / set вместо nullSafeGet / nullSafeSet, но эти методы также устарели в пользу версий, которые принимают SessionImplementor. Итак, похоже, что даже в официальном примере UserType Hibernate используются устаревшие методы, что заставляет меня задуматься над двумя вещами: