Olá,
Começei a estudar o framework Hibernate, porém surgiram umas dúvidas onde não estou conseguindo chegar em consenso.
A dúvida é, como deveriam ser divididas as camadas da aplicação. Lendo sobre patterns vi que é muito importante manter alta coesão dos dados e dos comportamentos, mas por outro lado vejo que muita gente usa classes DTO (só para conter os dados) e classes Services (operações sobre as classes DTOs), isso acaba com a coesão. Então, na camada de modelo, uma classe assim:
public class Produto {
private String nome;
private Double preco;
/*getters e setters suprimidos*/
public void insert();
public void delete();
public void update();
public void load();
}
…seria correto?
Só que fazendo assim, eu poderia estar colocando as Anotations do EJB nesta classe (para o hibertante fazer o mapping)? Lembrando que nesta classe eu estaria colocando as minhas regras de negócio relacionadas produto.
Seria interessante ter uma DAO para a classe de Produto só para tratar da persistencia com o hibernate? se estou errado, como eu deveria dividir a estrutura das minhas classes?
Obrigado pela atenção galera!