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