Pessoal,
Estou fazendo um Dao Generico com JPA!! e queria fazer um método tipo esse :
public List<Machine> findByName(String nome) {
String query = "SELECT m FROM Machine m WHERE m.nome like :nome";
Map<String, Object> params = new HashMap<String, Object>();
params.put("nome", nome);
return (List<Machine>) this.listAllByParam(query, params);
}
Só que ao invez de receber o paramentro nome ele recebe um objeto, e ai dentro do metodo ele verifica os valores que estão diferente de null e faz a busca usando esses critérios.
Alguém tem alguma ideia ???
Obrigado,
Marcelo Gomes
Ao invez de passar a String como parametro, passe o objeto Machine.
public List<Machine> findByName(Machine mc) {
String query = "SELECT m FROM Machine m WHERE m.nome like mc.nome";
Map<String, Object> params = new HashMap<String, Object>();
params.put("nome", nome);
return (List<Machine>) this.listAllByParam(query, params);
}
[ ]s,
Você está procurando isso?
[code]…
Product product = new Product();
product.setCategory(Category.APPAREL);
product.setName(“slacks”);
Example productExample =
Example.create(product).ignoreCase().enableLike();
List results = session.createCriteria(Product.class)
.add(productExample)
.list();
…[/code]
fonte: http://solutionsfit.com/blog/2007/12/04/extending-query-by-example-through-annotation/
O que quero fazer é isso que o maschiojv disse 
Mas desta forma só funciona com o hibernate, será que tem alguma forma de fazer que fique independente da tecnologia, que vai funcionar tanto em hibernate como em toplink ?
Obrigado,
Marcelo Gomes
[quote=marcelogomesrp]O que quero fazer é isso que o maschiojv disse 
Mas desta forma só funciona com o hibernate, será que tem alguma forma de fazer que fique independente da tecnologia, que vai funcionar tanto em hibernate como em toplink ?
Obrigado,
Marcelo Gomes[/quote]
Não, o JPA não suporta isso, ou vc faz a implementação do toplink ou do hibernate. 