Gostaria de separar minha camada de negócio da persistência em dois projetos do Eclipse. Assim eu geraria o jar de cada um e passaria pra um terceiro projeto, que seria minha camada web. Vou usar Hibernate e gostaria de saber se vcs colocariam os mapeamentos de objetos no projeto da persistencia ou deixariam no projeto de negócio mesmo. Tá difícil de separar o Hibernate.
Eu colocaria os mapeamentos junto com o projeto de negócios. Mas estou imaginando que você poderia usar a sua camada de persistência para outros projetos, com modelos diferentes.
Bom, eu queria fazer de uma forma que a camada de persistência não precisasse ter acesso a camada de negócio, mas com o Hibernate fica difícil fazer isso.
Independente de gerar Jar ou não, meu problema é a separação.[/quote]
Separação você faz por pacotes. Mas se ainda assim quiser separar 2 projetos divida-os da forma que você achar necessário e faça referência de um projeto para o outro na sua IDE para que se consiga achar as classes.
Independente de gerar Jar ou não, meu problema é a separação.[/quote]
Separação você faz por pacotes. Mas se ainda assim quiser separar 2 projetos divida-os da forma que você achar necessário e faça referência de um projeto para o outro na sua IDE para que se consiga achar as classes.[/quote]
Sim, exatamente isso.
Estou querendo não fazer com que a camada de persistência fosse dependente da negócio, somente o contrário. Acha isso possível com o Hibernate? Pensei em fazer uma interface em que a camada de negócio devesse implementar, onde deveriam ser configurados os mapeamentos dos beans.
Independente de gerar Jar ou não, meu problema é a separação.[/quote]
Separação você faz por pacotes. Mas se ainda assim quiser separar 2 projetos divida-os da forma que você achar necessário e faça referência de um projeto para o outro na sua IDE para que se consiga achar as classes.[/quote]
Sim, exatamente isso.
Estou querendo não fazer com que a camada de persistência fosse dependente da negócio, somente o contrário. Acha isso possível com o Hibernate? Pensei em fazer uma interface em que a camada de negócio devesse implementar, onde deveriam ser configurados os mapeamentos dos beans.[/quote]
Para essa abstração separe suas classes por pacotes e utilize Repositories para seu domínio e Data Mappers (Famoso DAO) para resolver a persistência.
Independente de gerar Jar ou não, meu problema é a separação.[/quote]
Separação você faz por pacotes. Mas se ainda assim quiser separar 2 projetos divida-os da forma que você achar necessário e faça referência de um projeto para o outro na sua IDE para que se consiga achar as classes.[/quote]
Sim, exatamente isso.
Estou querendo não fazer com que a camada de persistência fosse dependente da negócio, somente o contrário. Acha isso possível com o Hibernate? [/quote]
Não.
Contudo, se o que vc quer é separar a camada de persistência da camada de negocios ,se ambas usam hiberante não tem problema. Ao usar as anotações do hibernate no projeto de negocio vc não está fazendo a camada de negocio depender da persistência mas sim do modelo (modelo é diferente de persistência).
Ora, isso não tem problema nenhum pois o modelo pertence na camada de negocio.
A dependência só acontece se vc usar algo do hibernate na camada de negocio além das anotações (que são considerados metadados)
Independente de gerar Jar ou não, meu problema é a separação.[/quote]
Separação você faz por pacotes. Mas se ainda assim quiser separar 2 projetos divida-os da forma que você achar necessário e faça referência de um projeto para o outro na sua IDE para que se consiga achar as classes.[/quote]
Sim, exatamente isso.
Estou querendo não fazer com que a camada de persistência fosse dependente da negócio, somente o contrário. Acha isso possível com o Hibernate? [/quote]
Não.
Contudo, se o que vc quer é separar a camada de persistência da camada de negocios ,se ambas usam hiberante não tem problema. Ao usar as anotações do hibernate no projeto de negocio vc não está fazendo a camada de negocio depender da persistência mas sim do modelo (modelo é diferente de persistência).
Ora, isso não tem problema nenhum pois o modelo pertence na camada de negocio.
A dependência só acontece se vc usar algo do hibernate na camada de negocio além das anotações (que são considerados metadados)
[/quote]
Acho que vou fazer um projeto web e outro com o resto.
ué com hibernate é justamente bem mais fácil de fazer isso, se você fizer um bom uso de generics com hibernate é bem tranqüilo fazer isso,
a camada de persistência inteira aqui fica num único jar as aplicações nem precisam conhecer como ela funciona a única coisa é que os arquivos de configuração do hibernate tem que ficar na sua camada de negocio
ué com hibernate é justamente bem mais fácil de fazer isso, se você fizer um bom uso de generics com hibernate é bem tranqüilo fazer isso,
a camada de persistência inteira aqui fica num único jar as aplicações nem precisam conhecer como ela funciona a única coisa é que os arquivos de configuração do hibernate tem que ficar na sua camada de negocio
[/quote]
Bom, a minha preocupação é com o mapeamento de objetos (hbm´s). Provavelmente os hbms ficarão na camada de negócio, além da configuração do Hibernate.
Se você precisa não deixar a camada de negócios depender da engine de persistência faça configuração via XML e não anotações. Anotações criam uma dependência entre seus objetos e o framework, normalmente esta dependência não se msotra intrusiva o suficiente para ser um problema mas se você realmente precisa separar as coisas não pode gerar este vínculo.