Не может быть приведен к java.io.Serializable - PullRequest
16 голосов
/ 24 декабря 2010

В настоящее время я использую критерии для получения сведений о пользователе, но при попытке запроса объекта сведений с нужным пользователем я получаю исключение ClassCastException.

Код моих критериев;

Criteria criteria = sess.createCriteria(UserDetails.class)
criteria.add(Restrictions.eq("user.id", user.id));

Я тоже пытался использовать;

Criteria criteria = sess.createCriteria(UserDetails.class)

Criteria subCriteria = criteria.createCriteria("user");
subCriteria.add(Restrictions.eq("id", user.id));

Оба дают мне ClassCastException. Я знаю, что могу легко решить эту проблему, позволив пользователю реализовать Serializable, но есть ли другое решение?

Ответы [ 4 ]

14 голосов
/ 24 декабря 2010

Вы должны реализовать Serializable интерфейс.

12 голосов
/ 25 июня 2012

Мой опыт был таким. У меня была цепочка отношений между родителями и детьми. Затем я был вынужден провести рефакторинг. В ходе процесса мне не удалось правильно обновить все мои аннотации. Именно тогда я начал получать приведение к Сериализуемой ошибке. Я реализовал Serializable, и это выявило реальные проблемы. Как только все заработало, я смог удалить Serializable.

Итак, в ответ на ваш вопрос, реальная проблема может быть в вашей настройке, и Hibernate пытается обойти эти проблемы путем сериализации определенных объектов. Попробуйте временно внедрить Serializable, чтобы выявить проблемы, а затем удалите его.

11 голосов
/ 14 мая 2018

Для меня проблема заключалась в ошибке в Hibernate при использовании не-рк отношений: https://hibernate.atlassian.net/browse/HHH-7668

В качестве обходного пути я реализовал Serializable, и исключение пропало

5 голосов
/ 24 декабря 2010

Единственное другое решение - реализовать Externalizable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...