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

Relacionamento biredencional usando o java/hibernate como API

Olá,

Estou tentando replicar o projeto, porém fazendo o java/hibernate trabalharem como API para ser consumida pelo front-end, utilizando Wildfly 8 como servidor de aplicação.

Minha estrutura fica assim.

Classe - > Conta (entidade Conta , @Entity)

Classe - > ContaService - > (@Stateless etc.. que faz os métodos rest get,post,put,delete) todos funcionando testados pelo postman. URL: http://localhost:8080/api/webresources/contas

Classe -> Movimentacoes (Entidade Movimentação,@Entity)

Classe - > MovimentacaoService (@Stateless etc.. que faz os métodos rest get,post,put,delete) todos funcionando, testados pelo postman.

http://localhost:8080/api/webresources/movimentacoes

Minha duvida é : No caso do projeto deste curso, é persistido a conta e depois na mesma classe usa-se essa "conta" que está em estado managed pra vincular a tabela "Movimentacoes", que foi criada em seguida e está em estado managed também. Todavia isso não ficou claro pra mim como se faz em questão de API, eu tenho que chamar o ContaService e dar um POST na conta, e depois na classe de MovimentacoesService, como eu faço pra saber que a movimentação que quero cadastrar é daquela conta que acabei de cadastrar em outro URL?

Agradeço a atenção.

3 respostas

Você vai precisar passar o id da conta que quer associar com a movimentação... o segundo request realmente não sabe de nada do que aconteceu com o primeiro, então você precisa passar parâmetros para que cada ação ocorra com sucesso.

E não dá pra fazer tudo em um request só? Isso não ficou claro pra mim em termos de código. Mandar algo do tipo.

objeto conta

"Nome":"Fulano", "Idade":"xxx", "movimentacoes":[{ valor:10 local:"Rua qualquer" }]

E chamar o service da conta e pedir pra ele cadastrar a conta e a movimentação, tudo numa tacada só?

solução!

Opa, pode sim :). Aí você recebe isso, salva a conta e pega esse mesmo objeto que você acabou de salvar e já passa para o service da movimentação.