| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Hibernate, не ловиться исключение |
| Автор: diablero 7.6.2008, 19:36 | ||
| Собственно сабж. Код мне казался настолько очевидным, что я его даже не проверял. А когда это обнаружилось, то поставило меня в тупик. Если нет указанного id, то Hibernate бросает ObjectNotFoundException, но вот поймать его не получется, происходит возврат из метода, минуя catch. Как поймать и обработать исключение, если объекта с заданным id нет?
|
| Автор: v2v 8.6.2008, 00:10 |
| по доках, он не нулл возвращает, а бросает HibernateException. diablero, а объект с указанным ид точно в базе не существует? |
| Автор: ivg 8.6.2008, 00:11 |
| http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#load(java.lang.Class,%20java.io.Serializable) http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#get(java.lang.Class,%20java.io.Serializable). http://www.hibernate.org/hib_docs/v3/api/org/hibernate/ObjectNotFoundException.html Добавлено через 49 секунд |
| Автор: check 8.6.2008, 10:14 |
| Сорри, я в момент написания предыдущего поста думал о своём и потому забыл прочитать вопрос |
| Автор: diablero 8.6.2008, 11:16 |
точно. Тут дело даже не в том, что он возвращает не null, а почему происходит возврат из метода минуя catch. Я дебагером вижу, что метод load кидает ObjectNotFoundException, и мне как бы по барабану что случилось, мне нужно чтобы мой метод возвращал объект, либо null и больше ничего. |
| Автор: ivg 8.6.2008, 12:35 |
| diablero, http://www.hibernate.org/hib_docs/v3/api/org/hibernate/ObjectNotFoundException.html. Предположу, что метод load() возвращает proxy instance т. е. не null и исключение не генерируется либо ловится и обрабатывается Hibernate'ом. Возможно поэтому в вашем методе вы его поймать не можете. Возможно также, что оно генерируется позже, при обращении к данным (lazy loading) из другого места в коде. Проверьте этот момент. |
| Автор: diablero 8.6.2008, 15:02 |
| Я отказался от сего необъяснимого и непонятного и перевел все запросы такого типа на Criteria. Так все работает четко. |