Hola Alberto,

Recordá que este es un grupo de NHibernate, obtendrás ayuda más específica
en un grupo de Hibernate. Aún así, como dice Nestor, con modificar las
collation sería suficiente.

Saludos

On Mon, Oct 4, 2010 at 11:17 AM, tikotiko <[email protected]>wrote:

> Hola estaba usando criteria de hibernate pero la verdad aunke dispongo
> de un manual que parece bastante bueno no se utilizarlo del todo.
> Tenia el siguiente codigo
>
> public List customerList(Customer exampleInstance,CollectionCustomer
> exampleCollectionCustomer) {
>
>                Example example =
>
> Example.create(exampleInstance).ignoreCase().ignoreCase().enableLike(MatchMode.START);
>                Criteria crit = getSession().createCriteria(Customer.class);
>
>
>  if(((DocumentType)exampleInstance.getDocumentType()).getId()!=null){
>                         crit.add(Restrictions.eq("documentType.id",
> ((DocumentType)exampleInstance.getDocumentType()).getId()));
>                }
>                String apellido= exampleInstance.getCustomerSurname() ;
>                if (apellido!= null){
> //AQUI ES DONDE FALLA
>                        crit.add(Restrictions.sqlRestriction("upper
> (translate(customerSurname.Name, 'áéíóúÁÉÍÓÚ', 'aeiouAEIOU')) LIKE
> UPPER(translate(?, 'áéíóúÁÉÍÓÚ', 'aeiouAEIOU'))", apellido,
> (org.hibernate.type.Type) Type.String));
>
>                        if(apellido.compareTo(("asd"))==0){
>                                System.out.println("Apellido distinto de
> null");
>
>                        }
>                }
>
>                if(exampleCollectionCustomer.getCardNumber()!=null && !
> exampleCollectionCustomer.getCardNumber().equals("")){
>                        Example exampleCollCust =
> Example.create(exampleCollectionCustomer);
>                        Criteria critcollCust =
> getSession().createCriteria(CollectionCustomer.class);
>                        critcollCust.add(exampleCollCust);
>                        List<CollectionCustomer> collections =
> critcollCust.list();
>                        List<String> listIdCustomers = new
> ArrayList<String>();
>                        for(CollectionCustomer c:collections){
>
>  listIdCustomers.add(c.getCustomer().getIdCustomer());
>                        }
>
>  crit.add(Restrictions.in("idCustomer",listIdCustomers));
>                }
>
>                crit.add(example);
>                return crit.list();
>        }
>
> Queria hacer una consulta por medio de criteria (donde pone aqui es
> donde falla) en la que no tenga en  cuenta las tildes pero no se como
> ponerla.se que la consulta en HSQL que tendria q hacer es la siguiente
> pero en vez de Díaz por el nombre que introduzca
> Select c.id from Customer c where upper
> (translate(c.customerSurname,'áéíóúÁÉÍÓÚ', 'aeiouAEIOU')) LIKE
> UPPER(translate('%Díaz', 'áéíóúÁÉÍÓÚ', 'aeiouAEIOU'))
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano




-- 
Dario Quintana

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a