← Back to team overview

dhis2-devs team mailing list archive

Re: Fatal error in save method of HibernateGenericStore clazz

 

Thank you. Perhaps, do as your opinion. But thought that is a template way.

Expecting, if can, we should re-write the "save" method in *
HibernateGenericStore<T>* class likes:

    public final Serializable save( T object )
    {
        return sessionFactory.getCurrentSession().save( object );
    }

On Wed, Jun 16, 2010 at 4:21 PM, Quang Nguyen <quangnguyen111@xxxxxxxxx>wrote:

> Hi HIeu,
>
> On Wed, Jun 16, 2010 at 3:49 PM, Hieu Dang Duy <hieu.hispvietnam@xxxxxxxxx
> > wrote:
>
>> Hi devs and Lars,
>>
>> Surely that, we've got a hidden trouble when using the "*save*" method in
>> *HibernateGenericStore<T>* class here. Maybe call it is a fatal error.
>>
>> Have a look at this error message:
>> *
>> **ERROR 11:03:42,172 Error while executing action
>> (ExceptionInterceptor.java [http-8080-6])
>> java.lang.ClassCastException:
>> org.hisp.dhis.regularexpression.RegularExpressionLib cannot be cast to
>> java.lang.Integer at
>> org.hisp.dhis.hibernate.HibernateGenericStore.save(HibernateGenericStore.java:146)
>> *
>>
>> (In which, RegularExpressionLib is my defined class)
>>
>> This error occurred in when trying to add/save a new record in a table
>> where has the primary-key is a composite-id.
>>
>> Currently, the method "save" which is being defined like below:
>>
>>     public final int save( T object )
>>     {
>>         return (Integer) sessionFactory.getCurrentSession().save( object
>> );
>>     }
>>
>> My opinion/suggestion in this case is that *SHOULD NOT* cast the type of
>> returned value like that, Integer for instance.
>>
>> The "save" method of Session class now returns to an object as the
>> instance of Serializable class. Btw, if not mistaken, remembered that this
>> method usually returns the id of the new added record. So, this casting
>> would right if and only if the storing table contains a simple primary-key,
>> "id" for example.
>>
>> If the primary-key is not a single key but is a composite key then the
>> problem would be happened like the example's above.
>>
>> Give me your thought and any suggestion? Or how fix it?
>>
>> Takk to all.
>>
>>
> In my opinion, you should override the “save” method in your
> RegularExpressionLibDAO because we don’t have too much object with composite
> key.
>
> Regards,
> Quang
>
>
>> --
>> Hieu.HISPVietnam
>> Good Health !
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs<https://launchpad.net/%7Edhis2-devs>
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>


-- 
Hieu.HISPVietnam
Good Health !

Follow ups

References