Dne 29.8.2010 18:05, Lukas Barton napsal(a): > To ale bude desne pomale, nebot se nepouzije index. > Rozumnejsi je pridat sloupec, kde aplikace predpocita hodnotu > bezdiakritiky (lowercase,...) a stejne tak upravit vyhledavaci > retezec.
neni treba sloupec, muzete si nechat pocitat index primo nad tou vasi funkci (minimalne postgres to umi). create index name_ascii on mojetabulka(makeascii(name)); nase reseni je zhruba takove: mame tridu v jave ktera se stara o spravne preklapeni češtiny do cestiny (staticka metoda). zaroven umi vygenerovat funkci pro ruzne DB stroje. Tuto funkci lze bez obav pouzivat v HQL. > > Dalsi moznost je pouzit k hledani v textu neco jineho nez DB... > > Lukas > > On 8/29/10, Ondra Medek <[email protected]> wrote: >> No asi bych zkusil vytvorit DB ulozenou proceduru, ktera vrati retezec >> bez diakritiky, napr. bezd(), pak v SQL by to bylo neco jako: >> WHERE lower(bezd(alias)) like lower(...) >> a toho lze pak docilit pres sqlRestriction, pripadne >> SQLAliasedCriterion >> http://opensource.atlassian.com/projects/hibernate/browse/HHH-2952 >> >> 2010/8/29 danisevsky <[email protected]>: >>> Zdravím, používám hibernate a postgresql a potřeboval bych pořešit >>> následující věc. Vyzvednutí všech uživatelů, kteří mají v políčku >>> alias něco, co obsahuje "Žluťoučký" nebo "žluťoučký": >>> >>> Criteria crit = session.createCriteria(Person.class); >>> crit.add(Restrictions.ilike('alias', 'žluťoučký', >>> MatchMode.ANYWHERE).ignoreCase(); >>> List results = crit.list(); >>> >>> jak nejlépe docílit, aby do výsledku dotazu zahrnul i políčka >>> obsahující "Zlutoučký" nebo např "zlutoucky" - tedy částečně nebo >>> zcela bez diakritiky? >>> >>> Předem díky za jakoukoliv radu. >>> >> >> >> >> -- >> Ondra Medek >> -- Martin Beránek ICZ a.s., Pobočka Brno Londýnské náměstí 2/856, 639 00 Brno Tel.: +420 222 272 323 Tel.: +420 222 272 111 Fax.: +420 222 272 122 mailto:[email protected] http://www.i.cz
smime.p7s
Description: S/MIME Cryptographic Signature
