Boa tarde. Gostaria de entender como resolver a seguinte questão:
No projeto que estou atuando, o Backend e Frontend estão apartados. Para persistir os dados estou utilizando o Hibernate e para controlar a conexão com o BD possuo um filtro que abre a conexão no inicio da request e encerra a mesma ao retornar a response.
Para descrever melhor minha dúvida, irei ilustrar um cenário com duas classes, sendo Usuario e Perfil onde, ao cadastrar um usuário novo ele deve ser relacionado a um perfil.
Exemplo das classes:
@Entity
public class Usuario{
@Id
private Long id;
private String nome;
@OneToOne
@JoinColumn(name="id_perfil")
private Perfil perfil;
}
@Entity
public class Perfil{
@Id
private Long id;
private String nome;
}
O JSON recebido do Frontend para cadastrar usuário é:
{
"nome":"usuario novo",
"perfil":{
"id":1
}
}
O JSON retornado para o Frontend é:
{
"nome":"usuario novo",
"perfil":{
"id":1
"nome":null
}
}
O correto seria retornar também o nome do perfil? Como eu posso fazer isso, se o commit() no BD é executado no momento da response. Ou, é correto o Frontend fazer uma nova request passando o ID do usuário criado, para que receba o objeto completo?