Pessoal… não sei se há um meio fácil de fazer isso, ou se já até existe pronto…
Ao inves de ficar fazendo em CADA DAO a selecao do dados assim
public List<Usuarios> select(String nome, int idade, String datanasc, etc..) throws PersistenceException { .. }
public List<Produtos> select(String produto, float peso, etc..) throws PersistenceException { .. }
bla bla
Fizesse assim: selecao por entities:
//Preenche a entity
Usuarios user = new Usuarios();
user.setNome("Tony");
//buscando usuarios com o nome "Tony"
List<Usuarios> foundUsers = userDao.find(user);
//E no metodo do UserDao
public List<Usuarios> find(Usuario criterios) {
//busca apenas os dados da entity que foram setados
//.... ?????? EntityManager.???(criterios);
}
sendo que este modo deveria funcionar para TODAS as entidades.
Eu acho que esse poderia ser um aspecto mais do EJB do que do desenvolvedor, ou seja, o EntityManager deveria conter algum metodo que fizesse este esforco. Pensando assim, deveria haver um modo do EntityManager saber qual campo vai ser pesquisado… pois null ainda é um valor valido para busca… (*ai complica).
Alguém sabe um modo semelhante ou mais simples de se fazer isso?
Valeu.