hibernate hashCide a equals

Rastislav Siekel siekel na prosoft.sk
Čtvrtek Březen 4 09:52:03 CET 2010


Veď preto tam ten Commons-Lang dáva takéto niečo:

...
         Class lhsClass = lhs.getClass();
         Class rhsClass = rhs.getClass();
         Class testClass;
         if (lhsClass.isInstance(rhs)) {
             testClass = lhsClass;
             if (!rhsClass.isInstance(lhs)) {
                 // rhsClass is a subclass of lhsClass
                 testClass = rhsClass;
             }
         } else if (rhsClass.isInstance(lhs)) {
             testClass = rhsClass;
             if (!lhsClass.isInstance(rhs)) {
                 // lhsClass is a subclass of rhsClass
                 testClass = lhsClass;
             }
         } else {
             // The two classes are not related.
             return false;
         }
...

Čiže si to prekastuje na spoločného predka a až potom porovnáva.
Pravdupovediac som to moc neštudoval, po otestovaní s Hiberanate som 
zistil, že všetko beží ako má a odvtedy to "len" používam :-)

R.

------------------------------------------------------------------------
Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail : <siekel na prosoft.sk> <mailto:siekel na prosoft.sk>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20

On 4. 3. 2010 9:43, Lukas Barton wrote:
> Jenom pozor, ze je v equals metode nutne pouzivat instanceof misto  
> getClass()==.
> Hibernate tam totiz dava proxy a pak by to nefungovalo.
>
>   Lukas
>
> Rastislav Siekel wrote:
>> Jakrta Commons-Lang a zatiaľ ma nesklamali.
>>
>> Rastislav "Bedo" Siekel
>>
>> ------------------------------------------------------------------------
>> Ing. Rastislav Siekel
>> Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
>> E-mail : <siekel na prosoft.sk> <mailto:siekel na prosoft.sk>
>> Tel : 041/562 54 91
>> Fax : 041/562 54 97
>> Mobil : 0905 34 00 20
>>
>> On 4. 3. 2010 6:54, Daniel Holešínský wrote:
>>> Zdravim,
>>>
>>> pouzivam generator IDE (eclipse, idea). U Hibernate si ale musite 
>>> dat pozor na kolekce s atributem lazy - mimo session se jinak 
>>> potkate s vyjimkou
>>>
>>> org.hibernate.LazyInitializationException: failed to lazily 
>>> initialize a collection of role: ____, no session or session was closed
>>>
>>> z pri jakemkoliv pouziti eaual a hashCode (za predpokladu, ze tato 
>>> kolekce je zahrnuta do vypoctu hashCode a vyhodnoceni equals)
>>>
>>> DH
>>>
>>> 2010/3/3 Ivan Polak <ivan.polak na f4s.sk <mailto:ivan.polak na f4s.sk>>
>>>
>>>     Ahojte,
>>>
>>>     mam otazku, co pouzivate na generovanie tychto 2 metod pre domain
>>>     objecty v hibernate ? eclipse generovanie (Source/Generate
>>>     hashCode()
>>>     and equals() alebo pouzitie EqualsBuilder a HashCodeBuilder z
>>>     projektu
>>>     Jakarta Commons-Lang (http://
>>>     commons.apache.org/lang/ <http://commons.apache.org/lang/> alebo
>>>     nieco ine?
>>>
>>>     dakujem
>>>
>>>     Ivan
>>>
>>>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20100304/a5026277/attachment.htm>


Další informace o konferenci Konference