Boa tarde galera, tudo certo?
Estou fazendo um estudo sobre o Hibernate e JPA, e me surgiu uma dúvida sobre inserir dados em uma tabela que possui relacionamento com outras. Vou resumir a minha dúvida em entidades pequenas, para assim ficar mais fácil o entendimento.
##Entidades Criadas
@Entity
@Table(name="Curso")
public class CursoEntity{
@Id
@Column(name="Nr_Curso")
private int nrCurso;
@Column(name="Ds_Curso")
private String dsCurso;
/* ... Getters e Setters ... */
}
@Entity
@Table(name="Aluno")
public class AlunoEntity{
@Id
@Column(name="Nr_Aluno")
private int nrAluno;
@Column(name="Nm_Aluno")
private String nmAluno;
@OneToOne
@Column(name="Nr_Curso")
private CursoEntity cursoEntity;
/* ... Getters e Setters ... */
}
Método POST
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public AlunoEntity save(AlunoEntity alunoEntity) {
AlunoBusiness business = new AlunoBusiness();
int id = business.save(alunoEntity);
alunoEntity.setIdAluno(id);
return alunoEntity;
}
##Método Save
public int save(AlunoEntity alunoEntity) {
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = null;
Transaction tx = null;
try {
session = sessionFactory.openSession();
tx = session.beginTransaction();
int id = (int) session.save(alunoEntity);
tx.commit();
return id;
} catch (Exception ex) {
ex.printStackTrace();
tx.rollback();
return 0;
} finally {
session.close();
}
}
Json a ser inserido
[{
"nrAluno":1,
"nmAluno":"Aluno Teste",
"cursoEntity":{
"nrCurso": 1,
"nmCurso": "Ciência da Computação"
}
}]
Utilizando o Postman para fazer um insert utilizando o @POST, o retorno a qual recebo é "Can not deserialize instance of … out of START_ARRAY"
Neste caso, como trato a informação do cursoEntity para inserir os dados?
Desculpem-me caso a dúvida seja simples, tentei localizar algo que me ajudasse, porém, sem sucesso.
Grato pela atenção!
Atenciosamente,
Adonai Fabricio Nozella
