powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / org.hibernate.TransientObjectException
4 сообщений из 4, страница 1 из 1
org.hibernate.TransientObjectException
    #34848510
brejnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дано: система с Hibernate, Spring

Есть некоторые Entity-бины, делаю с ними следующее
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 CallEvent event;
            event =  new  CallEvent();

            event.setOperator(op);
            event.setClient(cl);
            event.setEvent_date( new  Date());
            event.setCall_archive_id( Long .parseLong(params.getCall_id()));
            event.setStatus(  new   Long (  0  ) );
                    
            AbonentManager am = (AbonentManager)getBean( Constants.CC_ABONENT_MANAGER_BEAN );
            Abonent abon= am.findAbonentByPhoneNumber( request.getParameter(CallCenterModulesConstants.HOTLINE_PARAM_PHONE) );
            
             if  (  null  ==  abon ) {
                abon=  new  Abonent();
                abon.setAbonent_id(  new   Long (  Long .parseLong( params.getAbon_id() ) ) );
                abon.setPhone( hotline.getAbonentPhone() );
                am.createAbonent( abon );
                
                event.setAbonent( abon );
            }
            

            abon.setAbonentFirstName( beanForm.getAbonentFirstName() );
            abon.setAbonentSecondName( beanForm.getAbonentSecondName() );
            abon.setAbonentSurName( beanForm.getAbonentSurName() );
            abon.setPhone( beanForm.getAbonentPhone() );
            


            am.updateAbonent( abon );                        
             Long  eventId= null ;
            eventId = cemg.createCallEvent(event); // <==== Вот тут возникает исключение

Сохраняются бины в БД следующим образом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/**
 * Сохраняет entity в базу, 
 * Возвращает id добавленной записи 
 */    
 public   Long  createCallEvent (CallEvent a)
    {
        getHibernateTemplate ().save (a);
        Session session = getHibernateTemplate ().getSessionFactory ().getCurrentSession ();
        
         return  ( Long )session.getIdentifier (a);
    }

В результате получаю исключение

Код: plaintext
1.
2.
org.springframework.dao.InvalidDataAccessApiUsageException: The given object has a null identifier: com.blandware.atleap.model.ccenter.CallEvent; nested exception is org.hibernate.TransientObjectException:
The given object has a null identifier: com.blandware.atleap.model.ccenter.CallEvent

Что за аццкий баг? Как побороть такое не знаю.

Hibernate аннотации для класса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
/**
 * @struts.form include-all="false" extends="com.blandware.atleap.webapp.form.BaseForm"
 * @hibernate.class table="`CALL_EVENT`" lazy="false" dynamic-update="true" dynamic-insert="true"
 * @hibernate.cache usage="read-write"
 */
 public   class  CallEvent  extends  BaseObject 
{
    /**
     * Returns the id of the question.
     *
     * @return id
     * @struts.form-field
     * @hibernate.id column="`id`"
     * generator-class="increment" unsaved-value="null"
     */
     public   Long  getId() {
         return  id;
    }
.....// поля, setter, getters с xdoclet-аннотациями 
}
...
Рейтинг: 0 / 0
org.hibernate.TransientObjectException
    #34848784
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где там у тебя собственно анотации?
...
Рейтинг: 0 / 0
org.hibernate.TransientObjectException
    #34848794
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри ступил у тебя xdoclet
...
Рейтинг: 0 / 0
org.hibernate.TransientObjectException
    #34848870
brejnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йопт, нашел баг, воевал с ним два дня.
Опять все из-за невнимательности....
Карочи, я пыталься entity == null сохранить в БД, hibernate выкинул мне не NullPointerException а какое то гадкое исключение, что и привело меня в ступор.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / org.hibernate.TransientObjectException
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]