Лучший способ реализовать Hibernate UserType после устаревания?

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

Я проверил руководство по Hibernate, чтобы увидеть, был ли обновленный пример. В их примере UserType используется get / set вместо nullSafeGet / nullSafeSet, но эти методы также устарели в пользу версий, которые принимают SessionImplementor. Итак, похоже, что даже в официальном примере UserType Hibernate используются устаревшие методы, что заставляет меня задуматься над двумя вещами:

  1. Есть ли хороший способ получить SessionImplementor из UserType?
  2. Если это нецелесообразно, получить SessionImplementor из UserType, а я не Если я хочу написать свой собственный nullSafeGet / nullSafeSet, следует ли мне отказаться от UserType в пользу одной из его альтернатив? В чем практические различия между UserType и, например, BasicType?

13
задан spaaarky21 27 May 2011 в 15:49
поделиться