Boa noite,
Ao tentar “salvar” um objeto do tipo Aluno, o erro a seguir é exibido:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.renaissance.entities.Contato
org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:249)
Fiz algumas tentativas mas sem êxito: salvei primeiro as relacionadas e depois o objeto principal mas não deu certo
save(aluno.endereco);
save(aluno.contato);
save(aluno);
Abaixo estão as classes relacionadas:
public class Aluno implements java.io.Serializable {
@OneToOne
@JoinColumn(name="id_escola")
private Escola escola = new Escola();
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_aluno")
private Long id;
@Column(name="nome")
private String nome;
@OneToOne
@JoinColumn(name="id_endereco")
private Endereco endereco = new Endereco();
@OneToOne
@JoinColumn(name="id_contato")
private Contato contato = new Contato();
}
public class Endereco implements java.io.Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_endereco")
private Long id;
@Column(name="logradouro")
private String logradouro;
@Column(name="numero")
private String numero;
@Column(name="complemento")
private String complemento;
}
public class Contato implements java.io.Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="id_creator")
@Column(name="id_contato")
private Long id;
@Column(name="email")
private String email;
@Column(name="telefone")
private String telefone;
@Column(name="celular")
private String celular;
}
Desde já agradeço.