У меня есть экземпляр класса, который я получил из сеанса Hibernate. Эта сессия давно прошла. Теперь я звоню toString()
и получаю ожидаемое LazyInitializationException: could not initialize proxy - no Session
, так как пытаюсь получить доступ к ссылке, которую Hibernate не разрешил во время загрузки экземпляра (отложенная загрузка).
Я не хочу делать загрузку энергичной, так как запрос изменится с 120 символов до более 4 КБ (с восемью объединениями). И мне не нужно: все, что я хочу отобразить в toString()
, это идентификатор объекта, на который есть ссылка; то есть что-то, что Hibernate должен знать в данный момент (или он не может выполнять ленивую загрузку).
Итак, мой вопрос: как вы справляетесь с этим делом? Никогда не пытайтесь использовать ссылки в toString()
? Или на всякий случай звоните toString()
в коде загрузки? Или в Hibernate есть какая-то служебная функция, которая будет возвращать что-то полезное, когда я передаю ей ссылку, которая может быть ленивой? Или вы вообще избегаете ссылок на toString()
? 1013 *