To com preguiça de dar quote… :lol:
Thiago Senna:
Eu tbm gosto dessa idéia , mas apenas para sistemas muito simples. Eu tive uma situação onde um processo em específico precisava ser feito em jdbc direto, por conta da performance, e tive q reescrever um monte de classes por não ter a persistencia encapsulada dentro de um Dao. A idéia do dao genérico deveria ser essa mesma, funcionar como um entitymanager.
[EDIT] se bem que vendo sua implementação, ela seria mais um dao genérico que usar o entitymanager direto to certo? [/EDIT]
fredferrao:
Sim, é nisso mesmo q eu tava pensando. no caso, o exemplo foi infeliz, o certo seria injetar o dao genérico no dao específico, caso fossem necessárias operações específicas. caso não tivesse essa necessidade, poderia injetar o dao normal mesmo.
veja se a idéia é muito maluca:
public interface Dao<T>...
//define as operações comuns
public class BaseDao<T> implements Dao<T>
//implementa as operações comuns
caso não tivessem operações especiais, faria assim:
public class CargoController{
CargoController(Dao<Cargo> cargoDao, ...){
...
Caso precisasse de alguma operações especial, ai implementaria em uma classe separada
public interface ClienteDao extends Dao<Clietne>...
//define as operações específicas
List<Cliente> listaPorTipo(Tipo tipo);
public class ClienteDaoImpl implements ClienteDao{
public ClienteDaoImp(Dao<Cliente> dao){...}
//implementa as operações específicas e delega para o basedao as operações básicas
e poderia injetar no controller
public class ClienteController {
ClienteController(ClienteDao clienteDao, ...){
...
o ideal é que desse pra fazer dessa maneira tbm, para os casos onde estas operações não fossem necessárias:
public class ClienteController {
ClienteController(Dao<Cliente> clienteDao, ...){
...
Mas ai acho que já estariamos esbarrando em limitações do java mesmo
To viajando muito? 