Estou fazendo um Dao Generico com JPA!! e queria fazer um método tipo esse :
publicList<Machine>findByName(Stringnome){
Stringquery="SELECT m FROM Machine m WHERE m.nome like :nome";Map<String,Object>params=newHashMap<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.
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,
maschiojv
Você está procurando isso?
...
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();
...
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
maschiojv
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
Não, o JPA não suporta isso, ou vc faz a implementação do toplink ou do hibernate.