Minha aplicação está dessa forma…
Eu tenho a camada de aplicação onde onde ficam os services e o controller que comunica com Presentation Layer, construida em jsf. Quanto ao meu DOMAIN MODEL não encontrei dificuldade em entende-lo. As agregações, factoreis, os objetos de valor e vai,e os services do meu DO. Entrentanto minha dúvida está no Repositorio, eu vi algumas pessoas falando que eu não preciso ter uma interface para o repositorio visto que a ideia é nunca “trocar” implementação de repositorio, levando em conta que o repostiorio do dominio não é obrigado a ser implementado pelo DAO é ?
- Disseram que o padrã DAO é usado para encapsular comandos SQL usado pela api de jdbc, ou caso eu queira comunicar minha app com outra aplicação ou legado, isso é correto?
+Se eu prentendo usar JDBC puro e não JPA por exemplo, eu posso não usar o DAO, por exemplo:
package minhaApp.Domain;
//Entidade
public class Cliente {
private String cpf;
private ClienteRepository clientes = new ClienteRepository(); //Aqui vou injetar via IoC logo mais..
public void verificarSeJaEstaCadastado(String cpf) {
if(!cpf==null){
this.clientes.verificarSeJAEstaCadastrado(String cpf);
}
else
throw new exception("preecha cpf por favor..");
}
}
[code] //Repositorio…
package minhaApp.Domain
public Class ClienteRepository {
public void setDataSource(DataSource ds) {
… //pega conexao…via Spring…lebrando que vou usar JDBC puro…
}
public void verificarSeJAEstaCadastrado(String cpf) thows Exception {
try {
Connection cnn = ds.getConnection();
String SQL = "SELECT c.cpf FROM cliente c WHERE c.cpf=?";
Statement...
....
....
if(cpf existe...).
thow new exception("cpf existe..");
}
}
}
[/code]
Ou seja, ao inves de criar uma interface repositorio para cada entidade, e depois implementar essa interface em uma classe
de infra-estrutura que poderia ser um DAO,…nao e melhor eu fazer tudo dentro do dominio mesmo usando JDBC?
olha só não vou usar um JPA/ Hibernate… visto que esses caras prá mim são um DAO,. eles tem os metodos add, list, remove…
então prá que criar redundancia…,? é logico que eu poderia usar JPA nesse projeto, e então eu teria meu entitiy manager dentro
da minha implementação de repositorio. porem nao quero usar ORM, não quero usar ORM…ja disse. como ficaria isso? tá certo?