Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida Hibernate

Olá Devs,

Estou com uma dúvida bem específica para o desenvolvimento de um projeto.

Minha situação é a seguinte:

Tenho um projeto multi módulos em maven que disponibiliza serviços REST. Minha idéia é que um dos módulos desse projeto seja o "modelo" que será empacotado como jar e toda aplicação que for utilizar os serviços basta importar o jar da camada de modelo para facilitar a comunicação entre aplicação e os serviços.

a questão é que se eu for usar hibernate para persistência no servidor, essas classes do modelo ficaram lotadas de anotações da JPA e eu acredito que quando a aplicação cliente for importar esse jar "Modelo" iria dar uma série de erros e eu estaria obrigando a aplicação do cliente a ter hibernate implementado.

Gostaria de saber se alguém possui uma dica para essa situação, porque estou pensando em abandonar o hibernate e utilizar JDBC nesse caso.

Obrigado!

3 respostas
solução!

Olá Felipe, tudo bem?

Pelo o que eu entendi você quer compartilhar seus objetos tanto de request como response dos serviços REST com os demais sistemas que você possui na empresa, para evitar cada um ter que criar e replicar o objeto tanto para fazer uma requisição como receber a resposta, seria isso?

Se for isso que entendi, realmente, se nessa camada de modelo você for utilizar JPA, ao importar essa dependência gerada no maven dos demais projetos, ele irá baixar as dependências do JPA. Olhando assim vejo duas maneiras, sendo a primeira essa que você sugeriu, utilizar JDBC, mas caso você queria continuar utilizando JPA para ter os benefícios e facilidades que ele trás para nós, nos seus serviços REST, tanto para receber uma requisição como responder, você pode criar DTOs e criar uma dependência apenas com esses DTOs. Assim, nos serviços REST, você recebe um request através do seu DTO e transforma para sua entidade e na resposta do serviços o inverso, transforma de entidade para DTO.

Espero ter ajudado.

Valeu, Lucas!

Minha dúvida era exatamente essa.

Quanto a transformação do DTO para entidade conhece alguma API para isso? ou teria que copiar atributo por atributo manualmente?

Valeu!

Felipe,

Existem algumas libs que pode te ajudar nessa conversão de entidade pra DTO e vice e versa, sendo eles: Dozer, Orika, MapStruct e ModelMapper.