Diky za informace. Jak je to jednoduche... :-)
mp. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Pavel Réder Sent: Wednesday, May 07, 2008 10:39 AM To: Java Subject: Re: Hibernate + DB2 + VARGRAPHIC Tak, tak. Deklarace VARCHAR(20) v DB2 ve skutečnosti znamená VARCHAR(20 Byte) - podobně se chová i Oracle 10, ale tam lze implicitně nastavit, že to má být VARCHAR(20 Char) a tím je to vyřešeno. Jestli to lze u DB2 nevím, my jsme to kdysi vyřešili trochu zběsilým způsobem - když se nám nepodařilo Hibernate donutit, aby vygeneroval db schéma s takovými exotickými typy, provedli jsme v ant buildu tohle: <replace dir="${hib.dir}"> <include name="database-schema.sql" if="database.db2"/> <replacetoken>char</replacetoken> <replacevalue>graphic</replacevalue> </replace> Kde database.db2 je vstupní parametr při spouštění buildu. Mmnno... co dodat - zkrátka je to časově efektivní řešení, které funguje a datový typ VARGRAPHIC se opravdu chová očekávaným způsobem. Ani bych jej nenazval alternativním, protože ona ta DB2 je celá jaksi... ;-) Pavel > Dobry den, > > na projektu pouzivame databazi DB2 a O-R mapovani Hibernate. > > Databaze je kvuli lokalizaci nastavena na kodovani UTF-8. > > Narazili jsme na problem, ktery se tyka delky textovych sloupcu. > Kdyz v DB2 pouzijete u databaze v UTF-8 typ VARCHAR(20), neznamena to, > ze do sloupce zapisete nejvyse 20 libovolnych znaku, nybrz 20 ASCII-znaku. > > Pokud tedy nekdo do sloupce zkusi zapsat text s hacky a carkami, > ktery bude mit celkem 20 znaku, uz se mu to nepodari, protoze > cast delky zabraly vice-bajtove znaky. > > Tento problem znemoznuje rozumnou validaci vstupu. > Nelze se totiz ridit pouhou delkou textu, ale je treba brat v uvahu > delku po konverzi do ciloveho kodovani (UTF-8). > Z pohledu uzivatele je to katastrofa. > > Jako mozne reseni se nabizi pouziti alternativnich datovych typu DB2: > GRAPHIC, VARGRAPHIC, ktere se jiz zrejme chovaji "normalne". > > Pro zajemce strucny popis zde: > http://www.ispirer.com/doc/sqlways38/Output/SQLWays-1-090.html > > Neni mi moc jasne, jak spravne nastavit Hibernate, aby tyto typy pouzivalo. > Take bych rad vedel, zda s pouzitim VARGRAPHIC nemate nekdo zkusenosti. > Jestli se nekde neskryva jeste nejaky dalsi zadrhel. > > Diky > mp.
